最近在复习Java基础时,复习到了Java修饰符。这也是我最开始学习Java时感到疑惑的地方,不同于C,Java程序动不动就public,private,这次系统学习完后,我总结了一下。
访问修饰符:
-
- public:
- 修饰类,这个类是公开的。public修饰的,类名一定和文件名一样。
- 修饰方法,公开
- 修饰域,公开
- private
- 修饰类,这个类就是私有的
- 修饰方法,表明该方法只能在本类访问,不能在其他类访问
- 修饰域,同上私有
- proctect
- 修饰类比较少
- 修饰方法,子类可以继承,访问,同包下的类也可以访问
- 修饰域同上
- default
- 只有同包的可以访问
- public:
非访问修饰符:
- static:
- 修饰类,该类就是内部静态类,
- 修饰域,所有该类对象共享该域。
- 修饰方法,只能类名调用,只能访问静态属性
- final:
- 修饰类,该类不能被继承,所以没有子类
- 修饰方法,不能被子类重写
- 修饰变量,通常是常量,该类变量不能被重新赋值
- abstract:抽象修饰符,用于修饰类和方法。抽象类不能实例化,抽象方法没有方法体,必须在子类中实现。
- synchronized:同步修饰符,用于修饰方法或代码块,确保同一时间只能有一个线程执行被修饰的代码。
- volatile:易变修饰符,用于修饰变量,保证变量的可见性,即每次读变量时都从主存中读取,而不是从线程的工作内存中读取。
- transient:瞬态修饰符,用于修饰变量,表明该变量不会被序列化。
- native:本地修饰符,用于修饰方法,表示该方法是用其他编程语言(如C/C++)实现的,而不是用Java实现的。
- strictfp:严格浮点修饰符,用于修饰类或方法,表示使用严格的浮点数运算规范。