1. 类的定义
[类修饰符] class 类名称 {
[修饰符] 数据类型 变量名; //声明成员变量
……
[修饰符] 返回值类型 方法名(参数表) { //声明成员方法
……
}
……
}
修饰符的类型决定了访问控制权限的大小。
2. 访问控制符
2.1 类修饰符
- public:声明为公共类,可以被任何对象访问;即可在任何一个类中使用public类来创建对象;
- 缺省:亦称为友好类,只有在相同包中的对象才能使用这样的类;即若在另一个类中使用友好类来创建对象时,要保证它们在同一个包中;
- 不能用protected、private来修饰类。
2.2 成员变量修饰符
- public :声明该变量为公共(共有)的, 可被任何对象的方法访问;如果在其他类中用A类来创建对象后,该对象能访问自己的public变量:
- protected :声明该变量为受保护的,可被它自己的类及其子类和同一包中的其他类访问,在子类中可覆盖此变量;
- 缺省 :友好变量,同一包中的其他类可以访问,其他包中的类不能访问该成员变量;
- private :声明该变量为私有的,只允许自己类的方法访问,其他类(包括子类)的方法均不能访问。
- final :最终修饰符,指定此变量的值不能改变;
- static :静态修饰符,指定该变量被所有对象共享,即所有的实例都可使用该变量(类变量、静态变量)。
2.3 成员方法修饰符
- public :指定该方法为公共的, 可被任何对象的方法访问;
- protected :声明该方法为受保护的,可被它自己的类及其子类和同一包中的其他类访问;
- 缺省 :友好方法,同一包中的其他类可以访问,其他包中的类不能访问该成员方法;
- private :指定该方法为私有的,只允许自己类的方法访问,其他类(包括子类)的方法均不能访问。
- final :最终修饰符,指定该方法不能被重载;
- static :静态修饰符,类方法,指定不需要实例化一个对象就可以激活的方法。
3. 总结
访问控制符按访问权限从低到高的排列顺序:
修饰符 | 类内部 | 同一个包 | 子类 | 任何地方 |
private | Yes | |||
default(缺省) | Yes | Yes | ||
protected | Yes | Yes | Yes | |
public | Yes | Yes | Yes | Yes |
注意:类中的实例方法总是可以操作该类中的实例变量和类变量,类方法总是可以操作该类中的类变量,与访问限制符无关。