封装就是四个修饰符(变量、属性、方法、构造器、类)
范围从大到小依次是public(公共的)、protected(受保护的)、default(违约)、private(私有的)
private:同类中
default:同包中
protected:在同包中父子友好,在不同包中可访问父类protected成员,不可访问父类对象的protected成员。
public:全局可访问
封装是面向对象的三大特征之一。
封装的理念:
高内聚,低耦合。
封装的作用及含义:
我们程序设计要追求,“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉,第耦合是仅暴露少量的方法给外部使用,尽量方便外部调用。
4,变成中封装的具体优点:
提高代码的安全性
提高代码的复用性
“高内聚”:封装细节,便于修改内部代码,提高可维护性。
“低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。
封装的实现----使用访问控制符
Java是使用“访问控制符”来控制哪些细节需要封装,哪些需要暴露的。
Java中4种“访问控制符”分别是:pritave(私有的)\default(违规的)\protected(受保护的)\public(公共的).
【注】关于 protected的两个细节:
1.若父类和子类在同一个包中,子类可访问父类的 protected成员,也可访问父类对象的
protected成员
2.若子类和父类不在同一个包中,子类可访问父类的 protected成员,不能访问父类对象
的 protected成员
开发中封装的简单规则:
- 属性一般使用 private访问权限。
- 属性私有后,提供相应的get/set方法来访问相关属性,这些方法通常是public修饰的,以提供对属性的赋值与读取操作(注意: boolean变量的get方法是is开头!)
- 方法:一些只用于本类的辅助性方法可以用 private修饰,希望其他类调用的方法用 public修饰。
【示例】 JavaBean的封装演示
public class Person
∥属性一般使用private修饰
private String name;
private int age;
private boolean flag;
∥为属性提供 public修饰的set/get方法
public String getName((
return name;
public void setName(String name){
this.name name;
public int getAge0
return age;