访问修饰符与访问限定符的区别

15 2025年7月 | 阅读 3 分钟

在 Java 中,访问修饰符用于限制类及其数据成员、成员函数和构造函数的范围。访问修饰符在设计 Java 程序和 Java 应用程序中起着重要作用。

Java 具有以下访问修饰符

  1. private
  2. protected
  3. public
  4. default

默认访问修饰符

当我们定义类、数据成员和成员函数而不指定任何访问修饰符时,它默认具有默认访问修饰符。我们未声明访问修饰符的类、数据成员和成员函数只能在同一包内访问。在当前包外,我们无法使用这些类和方法。

让我们实现默认访问修饰符的代码来理解其行为。

DefaultModifiersExample1.java

DefaultModifiersExample2.java

输出

编译 DefaultModifiersExample2 类时,会引发编译时错误。

公共访问修饰符

这是我们在 Java 中使用的另一种访问修饰符。我们通过使用 public 关键字来使用公共访问修饰符。它是具有最广范围的访问修饰符之一。我们可以从程序中的任何位置访问声明为 public 的类的成员函数和变量。简单来说,对公共数据成员的范围没有任何限制。

让我们实现公共访问修饰符的代码来理解其行为。

PublicModifiersExample1.java

输出

Access Specifiers vs Modifiers

受保护访问修饰符

protected 是我们在 Java 中使用的另一种访问修饰符,通过将 protected 关键字添加到类的数��成员和成员函数中。我们可以在同一包内或不同包中的子类内访问类的受保护数据成员和成员函数。

让我们实现受保护访问修饰符的代码来理解其行为。

ProtectedModifierExample1.java

输出

Access Specifiers vs Modifiers

私有访问修饰符

private 是我们在 Java 中使用的另一种访问修饰符,通过将 private 关键字添加到类的数��成员和成员函数中。私有数据成员和成员函数的范围有限,只能在声明它们的同一类内访问。

如果我们尝试从不同的包或同一包内的不同类中访问它们,将会引发编译时错误。

让我们实现私有访问修饰符的代码来理解其行为。

PrivateModifierExample1.java

输出

Access Specifiers vs Modifiers

如果我们取消注释最后一行访问私有变量 passOut 的语句,它会引发编译时错误。

Access Specifiers vs Modifiers

访问限定符与访问修饰符的区别

访问限定符和访问修饰符的意思相同。限定符和修饰符之间没有区别,两者的用法也相同。访问修饰符是官方术语,而我们用来代替修饰符的新术语是限定符。

因此,默认、公共、受保护和私有访问修饰符也可以称为默认、公共、受保护和私有访问限定符。