Skip to content

修饰符

权限修饰符

在 Java 中,可以通过权限修饰符来控制对类本身,和类中的属性和方法的访问权限。

权限修饰符一共有四种:

  • public,公有的
  • protected,受保护的
  • 默认不写
  • private,私有的

其中,只有 public 修饰符和「默认不写」能够修饰类本身。

权限修饰符的修饰范围如下:

修饰符当前类同一包内的其他类不同包的子孙类其他包的任意类
publicYYYY
protectedYYYN
默认不写YYNN
privateYNNN

tips:通过查看第一行代码package packageName;的包名是否相同来判断类是否处于同一个包中。

特征修饰符

  • final,最终的

    • 可以修饰类本身,变量,类的属性和方法
    • 被修饰的类不能够被继承
    • 被修饰的变量是常量,不可修改。如果没有初始值,则有一次赋值机会
    • 被修饰的属性必须有初始值,否则编译报错
    • 被修饰的方法不能被子类重写
  • static,静态的

    • 可以修饰类的属性、方法和程序块,内部类,它们被称为静态元素
    • 静态元素存储在静态区中,每一个类都有自己的区域,与其他类不冲突
    • 静态元素只有一份,全部类对象和类本身共享,可以通过类本身直接访问
    • 垃圾回收机制无法管理静态区,可以粗暴的认为静态元素就是常驻内存
  • native,本地的

    • 可以修饰类的方法
    • 被修饰的方法是通过非 Java 代码实现的
  • abstract,抽象的,非具体的

    • 可以修饰类本身、类的方法
    • 被修饰的方法没有方法体
    • 虽然 native 修饰符修饰的方法也没有方法体,但它不是抽象方法
    • 抽象方法必须放在抽象类(或接口)中
    • 抽象类不能被实例化,因此抽象类只能通过子类继承去做事
  • transient,瞬时的,短暂的,与对象的序列化有关

  • synchronized,同步的,主要用于线程

  • volatile,不稳定的,主要用于线程