【Java·访问修饰符】:default、public、protected、private

218 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第27天,点击查看活动详情

1️⃣前言

大家好,我是翼同学。今天笔记的内容是:

  • 访问修饰符

2️⃣内容

2.1、修饰符

Java提供了很多修饰符,用于修饰变量,方法,类以及类的内部结构(属性和方法等)。通常的,修饰符都是放在语句的最前面。

而修饰符一般分为访问修饰符和非访问修饰符。

2.2、访问修饰符

访问修饰符一般用于设置类或类成员的访问权限。具体就是defaultpublicprotectedprivate四种访问修饰符。

🌳default

如果变量或方法不用任何访问修饰符来修饰,则其访问范围为同一包中的类。

🏔️public

public访问修饰符修饰的方法、类、接口等都可以被所有其他类所访问。

注意事项:

  • Java程序的main()方法必须设置为公有的,否则Java解释器会无法运行该类。
  • 如果几个相互访问的public类分布在不同的包中,则需要导入相应public类所在的包。
  • 类所有的公有变量和方法继承给子类。
  • 父类中声明为public的方法在子类中也必须为public

🌻protected

若用protected访问修饰符进行修饰,则对同一包内的类以及所有子类是可见的。

注意事项:

  • protected访问修饰符可以修饰类的属性、构造方法以及成员方法,但不能修饰类(内部类除外)。
  • 接口及接口的成员变量和成员方法也是不能声明为protected
  • 父类中声明为protected的方法在子类中要么声明为protected,要么声明为public,不能声明为private
  • 基类的protected成员是包内可见的,并且对子类可见;如果子类与基类不在同一包中,那么在子类中,子类实例可以访问其从基类继承而来的protected方法,而不能访问基类实例的protected方法。

🌱private

private访问修饰符属于最严格的访问级别,一般用于保护类的数据或隐藏类的实现细节。被private修饰的变量、方法或者构造方法等,就只能被所属类访问。

另外需要注意的是:

  • 类和接口无法被声明为private
  • 声明为private的变量只能通过所属类中定义的公共方法被外部类访问。
  • 父类中声明为private的方法,不能够被子类继承。

举个例子:

public class Test{
   private int value;
   public int getValue() {
      return this.value;
   }
   public void setValue(int val) {
      this.value = val;
   }
}

在上述例子中,Test类中定义的value变量属于私有属性,外部类无法直接得到或设置该变量的值,只能通过公共方法getValue()来获取变量的值,和setValue()来设置变量的值。


3️⃣写在最后

好了,今天的笔记就记到这里。