权限修饰符
可见度 | private | default | protected | public |
同一个类中 | 允许访问 | 允许访问 | 允许访问 | 允许访问 |
同一个包中 | 允许访问 | 允许访问 | 允许访问 | |
不同包的子类 | 允许访问 | 允许访问 | ||
不同包的非子类 | 允许访问 |
1.private
类成员如果设置成private访问权限,则该类的成员只能被同一类中的成员访问,而不能让其他类进行访问。
例如:private int age; //定义一个private的成员变量
private void checkAge( ) { } //定义一个private的成员方法
2.default
默认的权限只允许该类的成员能被同一包中的类访问。注意,在声明类成员的访问权限为默认时,default修饰符可为空。
package chap;
public class JStudent{
int age; //定义一个默认的成员变量
void checkAge() { } //定义一个默认的成员方法
}
在上例中,chap包内的类都可以访问变量age和方法checkAge
3.protected
同一个包内的所有类的所有方法都能访问使用protected修饰符的成员,另外如果不在同一个包内的类的方法要访问该成员,则该类必须是该成员所在的类的子类。
例如:package chap;
public class JStudent {
protected int age; //定义一个protected的成员变量
protected void checkAge( ){ } //定义一个protected的成员方法
}
在上例中,chap包内的类和其他包中JStudent的子类,都可以访问protected修饰的成员
4.public
被public修饰的类中成员对外开放,可以供所有类访问。
例如:public int age; //定义一个public的成员变量
public void checkAge( ) //定义一个public的成员方法
封装性的设计原则
下面介绍一个通用的设计原则,能适用于大部分的程序设计
(1)类通常采用public修饰
(2)成员变量通常采用private修饰
(3)构造方法一般采用public修饰
(4)带get与set的成员方法用public修饰
常见规则:
以后我们使用public来修饰类,一个Java文件中只能有一个类,如果一个文件中有多个类,类名和文件名一样的类,必须用public修饰,其他的类不能使用public修饰。
以后所有的成员变量都使用private修饰
以后所有的方法使用public修饰
以后所有的构造方法用public修饰,如果不想让其创建对象,使用private修饰