高内聚、低耦合
封装优点:
1 提高代码安全性
2.提高代码复用率
3.高内聚:封装细节,便于修改内部代码,提高可维护性
4.低耦合:简化外部调用,便于使用者使用,便于扩展和协作。
封装的实现
Java通过“访问控制符”来控制哪些需要封装
**注:**关于protected的两个细节:
1.若父类和子类在同一个包下,子类可访问父类的protected成员,也可以访问父类对象的protected成员。
2.若子类和父类不在同一个包下,子类可以访问父类的protected成员,不能访问父类对象的protected成员。
package com.bjsxt.testencapsulation.a;
public class Person {
private int testPrivate = 100;
int testDefault = 200;
protected int testProtected = 300;
public void test(){
System.out.println(this.testPrivate);
System.out.println(this.testDefault);
System.out.println(this.testProtected);
}
}
package com.bjsxt.testencapsulation.a;
public class Student {
public static void main(String[] args) {
Person p = new Person();
System.out.println(p.testDefault);
System.out.println(p.testProtected);
}
}
package com.bjsxt.testencapsulation.b;
import com.bjsxt.testencapsulation.a.Person;
public class Teacher extends Person {
public void test(){
System.out.println(super.testProtected);
}
public static void main(String[] args) {
Person p = new Person();
// System.out.println(p.testProtected);
//1.若父类和子类在同一个包下,子类可访问父类的protected成员,也可以访问父类对象的protected成员。
//2.若子类和父类不在同一个包下,子类可以访问父类的protected成员,不能访问父类对象的protected成员。
}
}
封装使用细节
开发中封装的简单规则
1.一般使用private访问权限。
2.提供相应的get/set方法访问相关属性,这些方法通常是public修饰的,以提供对属性的赋值与读取操作(注意:boolean变量的get方法是is开头!)
3.一些只用于本类的辅助性方法可使用private修饰,希望其他类调用的方法用public修饰。