当前位置:首页 > Java

如何封装java代码

2026-03-23 16:44:35Java

封装Java代码的基本方法

封装是面向对象编程的三大特性之一,用于隐藏对象的属性和实现细节,仅对外提供公共访问方式。以下是实现封装的主要方法:

使用访问修饰符 Java提供四种访问修饰符控制访问权限:

  • private:仅当前类可访问
  • protected:当前类、同包及子类可访问
  • 默认(无修饰符):当前类和同包可访问
  • public:所有类可访问
public class Person {
    private String name;  // 私有属性
    private int age;

    public String getName() {  // 公共getter方法
        return name;
    }

    public void setName(String name) {  // 公共setter方法
        this.name = name;
    }
}

提供getter和setter方法 通过公共方法访问私有属性,可在方法中加入逻辑控制:

public void setAge(int age) {
    if(age > 0 && age < 150) {  // 添加验证逻辑
        this.age = age;
    } else {
        throw new IllegalArgumentException("Invalid age");
    }
}

使用包(package)组织代码 将相关类放在同一包中,通过包级访问控制实现封装:

package com.example.model;

class InternalHelper {  // 包私有类
    void helperMethod() {...}
}

不可变类设计 通过final类和私有final字段实现完全封装:

public final class ImmutablePoint {
    private final int x;
    private final int y;

    public ImmutablePoint(int x, int y) {
        this.x = x;
        this.y = y;
    }
    // 只有getter没有setter
}

封装的最佳实践

接口隔离原则 通过接口定义公共契约,隐藏实现细节:

public interface DataRepository {
    void save(Data data);
    Data findById(String id);
}

public class DatabaseRepository implements DataRepository {
    // 实现细节对外不可见
}

使用Builder模式封装复杂对象创建

public class NutritionFacts {
    private final int servingSize;
    private final int servings;

    public static class Builder {
        // 必填参数
        private final int servingSize;
        private final int servings;

        // 可选参数
        private int calories = 0;

        public Builder(int servingSize, int servings) {
            this.servingSize = servingSize;
            this.servings = servings;
        }

        public NutritionFacts build() {
            return new NutritionFacts(this);
        }
    }

    private NutritionFacts(Builder builder) {
        servingSize = builder.servingSize;
        servings = builder.servings;
    }
}

使用工厂方法封装对象创建

如何封装java代码

public class PaymentFactory {
    public static Payment create(String type) {
        switch(type) {
            case "credit": return new CreditCardPayment();
            case "paypal": return new PayPalPayment();
            default: throw new IllegalArgumentException();
        }
    }
}

通过合理使用这些封装技术,可以提高代码的安全性、可维护性和可扩展性,同时降低模块间的耦合度。

标签: 代码java
分享给朋友:

相关文章

如何打开java

如何打开java

打开 Java 程序的方法 通过命令行运行 Java 程序 确保已安装 Java Development Kit (JDK) 并配置环境变量。使用 javac 编译 .java 文件,生成 .clas…

如何运行java程序

如何运行java程序

编写Java代码 创建一个以.java为扩展名的文件,例如HelloWorld.java。文件内容需包含一个类定义,类名必须与文件名一致。例如: public class HelloWorld {…

如何卸载java

如何卸载java

卸载Java的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成操…

java如何创建对象

java如何创建对象

创建对象的基本方法 在Java中,创建对象主要通过new关键字调用构造函数完成。基本语法为: ClassName objectName = new ClassName(); 例如创建String对象…

java程序如何打包

java程序如何打包

打包Java程序的方法 使用JAR打包 Java程序可以通过JAR(Java Archive)格式打包,这是一种常见的压缩格式,适用于包含多个类文件和资源的项目。以下是使用JAR打包的步骤: 确保项…

vue实现代码

vue实现代码

以下是Vue实现常见功能的代码示例,涵盖基础语法、组件通信、状态管理等核心内容: 基础模板语法 <template> <div> <h1>{{ mes…