1. 封装的基本原则:
- 将类的字段(成员变量)声明为私有(private),以防止直接访问。
- 提供公共的方法(getter和setter)来访问和修改字段的值。
2. 示例代码:
public class Car {
// 私有字段
private String model;
private int year;
// 构造方法
public Car(String model, int year) {
this.model = model;
this.year = year;
}
// 公共方法(getter和setter)
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public int getYear() {
return year;
}
public void setYear(int year) {
if (year > 0) {
this.year = year;
} else {
System.out.println("Invalid year value");
}
}
}
3. 访问修饰符:
- private: 私有访问修饰符,只能在类的内部访问。
- public: 公共访问修饰符,可以在任何地方访问。
- protected: 受保护访问修饰符,可以在相同包内和子类中访问。
- default (package-private): 默认访问修饰符,可以在相同包内访问。
4. 使用封装的优势:
- 控制访问权限: 通过将字段声明为私有,可以控制哪些代码可以访问和修改字段的值。
- 隐藏实现细节: 将实现细节隐藏起来,使得类的内部结构对外部用户不可见,从而更容易维护和修改。
- 增加灵活性: 可以更轻松地修改类的实现,而不会影响使用该类的其他代码。
5. 封装的示例:
public class EncapsulationExample {
public static void main(String[] args) {
// 创建 Car 对象
Car myCar = new Car("Toyota", 2022);
// 使用 getter 获取字段的值
System.out.println("Model: " + myCar.getModel());
System.out.println("Year: " + myCar.getYear());
// 使用 setter 修改字段的值
myCar.setModel("Honda");
myCar.setYear(2023);
// 再次使用 getter 获取修改后的值
System.out.println("Modified Model: " + myCar.getModel());
System.out.println("Modified Year: " + myCar.getYear());
}
}
在这个例子中,Car 类的字段被声明为私有,并提供了公共的 getter 和 setter 方法来访问和修改这些字段的值。
封装是面向对象编程的基本原则之一,它有助于提高代码的可维护性、可扩展性和安全性。
转载请注明出处:http://www.zyzy.cn/article/detail/13484/Java