访问修饰符
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
- default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
 - private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
 - public : 对所有类可见。使用对象:类、接口、变量、方法
 - protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
 
我们可以通过以下表来说明访问权限:
| 修饰符 | 当前类 | 同一包内 | 子孙类(同一包) | 子孙类(不同包) | 其他包 | 
|---|---|---|---|---|---|
public | Y | Y | Y | Y | Y | 
protected | Y | Y | Y | Y/N(说明) | N | 
default | Y | Y | Y | N | N | 
private | Y | N | N | N | N | 
非访问修饰符
为了实现一些其他的功能,Java 也提供了许多非访问修饰符。
static修饰符,用来修饰类方法和类变量。final修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。abstract修饰符,用来创建抽象类和抽象方法。synchronized和volatile修饰符,主要用于线程的编程。