·
·
Java访问控制符的含义和使用情况
·
类内部 | 同包 | 子类 | 外包 | |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
default(friendly) | √ | √ | √(仅限于同包子类) | |
private | √ |
·
类
·
public | 公共的,对所有包可见 |
---|---|
default | 同包可以访问 —除了以上两个,在类的修饰符中还可以加入以下二个(不考虑内部类) |
abstract | 抽象类,需要继承,不能直接实例 |
final | 最终类,不能被继承 |
·
变量
·
public | 可以被任何类访问 |
---|---|
protected | 可以被所有子类或同包下的类访问 |
缺省 | 只能被当前类的方法访问 |
private | 只允许自己的类访问 |
static | 类变量,可以被类的所有实例共享,并不需要创建类的实例就可以访问 |
final | |
volatile | 多线程修改试用(可见性,不可重排性) |
transient | 告诉编译器,在该对象序列化的时候,此变量不需要长久保存 |
·
方法
·
public | 共有的 |
---|---|
protected | 同包可以访问 |
private | 私有,本类使用 |
缺省(无访问修饰符) | 同包可以访问(子类如不在同一包下,也不能访问) |
static | 静态方法又称为类方法 提供不依赖于类实例的服务 |
final | 阻止任何子类重写该方法 |
abstract | 抽象方法 声明而不实现,不能将static final方法或者类的构造器声明为abstract |
native | 在类中没有实现,大多数的情况下是由C、C++编写的(JNI提供了运行时加载一个native 方法的实例,并将其于一个Java类关联) |
synchronized | 异步调用 |
·
图片一览
·
·
end
如有错误,欢迎指正 欢迎转载,请注明出处