Java访问控制符和修饰符
·
·
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
如有错误,欢迎指正
欢迎转载,请注明出处