java 修饰符
四个访问修饰符:
private 表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有的,只对本类可见
不能通过对象点的方式访问数据
现在来说说为什么要把数据定义为私有
把数据定义为私有通过公有方法来访问数据,这是一个规范
public 表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用,对一切可见
如果在类的修饰符中用了public,那个类的名字必须和你的文件名一致
一个.java的源文件中 一般有且只有一个public的类
protected 对于子类、同级类来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private,对所有子类和本包可见(当前目录中类,子目录不行)
default 默认值 (不用访问修饰符时) 对本包可见
类的访问控制修饰符只能是public或者没有修饰符(即默认的访问控制符),默认的访问控制符的含义是在同一个包内形如public可被任意调用,但是对另一个包的类则是不可见的..
main()是整个程序的入口,需要被java虚拟机调用。如果是非public的话对虚拟机是不可见的。
| | private | default |protected| public |
| 同一类中成员 | 是 | 是 | 是 | 是 |
| 同一包中成员 | 否 | 是 | 是 | 是 |
| 不同包中子类 | 否 | 否 | 是 | 是 |
|不同包中非子类| 否 | 否 | 否 | 是 |
| 修饰符 | 类 |成员访求|构造方法|成员变量|局部变量|
| abstract 抽象的 | √ | √ | - | - | - |
| static 静态的 | - | √ | - | √ | - |
| public 公共的 | √ | √ | √ | √ | - |
| protected 受保护的 | | √ | √ | √ | - |
| private 私有的 | - | √ | √ | √ | - |
|synchronized 同步的 | - | √ | - | - | - |
| native 本地的 | - | √ | - | - | - |
| transient 暂时的 | - | - | - | √ | - |
| volatie 易失的 | - | - | - | √ | - |
| final 不要改变的 | √ | √ | - | √ | √ |
类修饰符
Public 可以从其他类中访问
obstract 本类不能被实例化
final 不能再声明子类
构造器修饰符
Public 可以从所有的类中访问
Protected 只能从自己的类和它的子类中访问
Private 只能在本类中访问
域修饰符
Public 可以从所有的类中访问
Protected 只能从本类和它的子类中访问
Private 只能从本类中访问它
Static 对该类的所有实例只能有一个域值存在
transient 不是一个对象持久状态的一部份
Volatile 可以被异步的线程所修改
final 必须对它赋予初值并且不能修改它
局部变量修饰符
final 必须对它赋予初值并且不能修改它
方法修饰符
Public 可以从所有的类中访问它
Protected 只能从本类及其子类中访问它
Private 只能从本类中访问它
abstract 没有方法体,属于一个抽象类
final 子类不能覆盖它
static 被绑定于类本身而不是类的实例
native 该方法由其他编程语言实现
asnchronized 在一个线程调用它之前必须先给它加