类变量 的定义前加有 static,这表示它是静态的,因此类的多个实例共用一个类变量。
实例变量 定义在类的方法之外,一般处于类的起始位置,类的每一个实例都独自拥有一份实例变量的拷贝。
局部变量 的有效范围在程序块中,它的生命期仅限于此程序块内。
常量 的定义比类变量仅多了个final,如下所示:
final static int ALL_CLICKS = 0;
注意 ALL_CLICKS 的所有字母都是大写的,这是常量的规范命名方式。
使用变量的一般原则是——尽量使变量的有效范围最小化:优先考虑用局部变量,其次是实例变量,最后才是类变量。
访问控制符 | 同一个类内部 | 同一个包内部 | 不同包中的子类 | 不同包中的非子类 |
public | Yes | Yes | Yes | Yes |
protected | Yes | Yes | Yes | No |
无访问控制符 | Yes | Yes | No | No |
private | Yes | No | No | No |