Java基础——修饰符

访问权限修饰符

Java支持4种访问权限,从小到大依次为

1 private

  • 对同一类可见。
  • 可修饰:变量、方法
  • 不可修饰:外部类、接口

外部类是源码中直接声明的类,对应的内部类是类中声明的类,内部类当成外部类的属性使用即可

OuterClass outer = new OuterClass(); // 先构建外部类对象才能用内部类
OuterClass.InnerClass inner = outer.new InnerClass(); // 构建内部类对象
class OuterClass{
    
     // 创建一个外部类
	class InterClass{
    
     // 创建一个内部类
	}
}
  • 当一个类的对象非常复杂,很容易创错,或者创建对象非常消耗资源时,可以用private修饰构造方法

2 default

  • 对同一包可见,默认权限,什么都不写
  • 可修饰:类、接口、变量、方法
  • 不可修饰:

3 protected

  • 对同一包内的类和其所有子类可见
  • 可修饰:变量、方法
  • 不可修饰:外部类、接口

4 public

  • 对所有类可见
  • 可修饰:类、接口、变量、方法
  • 不可修饰:
  • 默认的构造方法是无参的public方法

5 修改权限修饰符 final

  • 数据初始化后如果不想被修改,可以使用关键字final修饰
  • final可以修饰:变量,属性,方法,类,方法中的参数
  • final修饰变量,变量值初始化后无法修改
  • final修饰属性,JVM无法自动初始化属性,需要自己手动初始化,属性值初始化后不能变
  • final修饰某个父类中的方法,其子类无法重写该方法
  • final修饰类,别的类不可以继承这个类
  • final修饰方法中的参数,参数无法修改
  • final不可以修饰:构造方法
  • final不可以修饰:抽象类中的抽象方法,因为抽象类的构造方法也是抽象的,无法直接用构造方法创建对象,只能通过子类继承抽象类,并重写抽象类的构造方法,才可以创建对象,若用final修饰抽象类中的抽象方法,该方法就无法被子类重写

6 静态修饰符 static

  • 可以修饰:变量、方法
  • 用static修饰一个类的变量和方法,不需要创建对象就可以直接用这个变量和方法,用法为类名.属性名或类名.方法名()

7 抽象类修饰符 abstract

  • 抽象类就是不完整的类
  • 抽象类的抽象方法只声明
  • 抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类
  • 如果一个抽象类含有抽象方法,子类继承抽象类时必须把抽象方法都重写了
  • 抽象类无法直接构建对象,可以通过子类间接构建对象

8 synchronized 和 volatile

主要用于线程的编程

猜你喜欢

转载自blog.csdn.net/weixin_46838605/article/details/129862924