访问修饰符是什么?
访问修饰符用于控制程序的其他部分对这段代码的访问级别,分为基本访问修饰符和辅助访问修饰符
基本访问修饰符
基本访问修饰符可用于修饰类、方法、成员变量(域),不可修饰变量,因为变量的作用域在{}里。×表示配套使用会破坏封装,一般不建议。
名称 | 修饰类 | 修饰方法 | 修饰域 | 作用 |
---|---|---|---|---|
public | 封装 | × | 全局可见 | |
protect | × | 限制方法使用 | × | 包内及其子类内可见 |
(default) | × | × | 包内可见 | |
private | 内部类 | 作为辅助方法 | 封装 | 自身类内可见 |
辅助访问修饰符
辅助访问修饰符有其对应的修饰,有static、final、abstract、strictfp、native、transient、synchronized和volatile等
修饰类
名称 | 修饰类型 | 作用 |
---|---|---|
static | 内部类 | 当前类为静态内部类,可由外部类直接调用(外部类名.内部类名) |
final | 当前类不可继承 | |
abstract | 当前类为抽象类 | |
strictfp | 内部类 | 当前类内的浮点运算在任何平台中的计算结果都相同 |
synchronized | 类的字节码 | 当前类同一时间只能被一个线程访问 |
修饰方法
名称 | 作用 |
---|---|
static | 当前方法属于类,称为静态方法,可由类直接调用(类名.方法名) |
final | 当前方法不可继承 |
abstract | 当前方法为抽象方法,不能和final同时使用 |
strictfp | 当前方法内的浮点运算在任何平台中的计算结果都相同 |
synchronized | 当前方法同一时间只能被一个线程访问 |
native | 当前方法由另外一种语言(如c/c++)实现 |
修饰变量
名称 | 修饰类型 | 作用 |
---|---|---|
static | 成员变量 | 当前变量属于类,称为静态变量,被类共享(类名.变量名) |
final | 当前变量为常量,创建时初始化(大写命名),初始化后不能再修改 | |
transient | 成员变量 | 当前变量不会被序列化 |
volatile | 成员变量 | 当前变量被线程访问时,都重新读取该变量的值,当发生变化时,会被强制写回 |
接口的访问修饰符
接口里的变量都默认为public static final,而接口里的方法默认为public