【摘要】 封装将数据和操作连接起来。封装的一个重要属性:访问控制。 通过封装可以控制程序的某个部分所能访问类的成员,防止对象滥用。从而保护对象中数据的完整性。 在Java中类的每个成员(数据成员和成员方法)都有一个成为可访...封装将数据和操作连接起来。封装的一个重要属性:访问控制。
通过封装可以控制程序的某个部分所能访问类的成员,防止对象滥用。从而保护对象中数据的完整性。
在Java中类的每个成员(数据成员和成员方法)都有一个成为可访问性的属性,用来保护类成员。
Java中有四类成员的保护方式:private(私有的)、protected(保护的)、public(共有的)default(包访问权限)。
1.private 实现封装(私有的)
(最严格)只能被这个类本身访问,其他情况如同一包内的类、子类等都无法访问。
将属性,方法用private封装后表示,被封装的属性与方法只能在本类中使用,类外部不可见。 此时要想访问被封装的属性,必须提供getter 与setter 方法. 不能用于外部类(最顶层的类),可以用于内部类的嵌套。getter方法:主要进行属性内容的取得。public void setName(string n) 对name的set方法。setter方法:主要进行属性内容的设置与修改。类的设计原则:编写类的时候,没有额外说明,所有属性必须使用private封装(成员变量)
2.protected(保护的):
同一包内的类以及其子类可以访问。
这里需要说明,包内的类(其他类和子类);子类(包内的和包外的),所以同一包内的类和子类其实是有交集的——包内的子类。
3.public(公共的):
(最不严格),任何类都可以访问该成员。
4.default(缺省的):
类中不加任何访问权限限定的成员属于缺省的访问状态。
可以被这个类本身以及同一个包中的类访问。
包内的类包括其子类,但是包外的类一律无法访问。
访问权限修饰符总结表:
修饰符同一个类同一个包子类所有类
public允许访问允许访问允许访问允许访问
protected允许访问允许访问允许访问–
default允许访问允许访问––
private允许访问–––