Java访问修饰符详解:public、private、protected与默认(包级私有)

作者:狼烟四起2024.04.09 19:56浏览量:17

简介:在Java中,访问修饰符用于控制类、变量、方法和构造器的访问权限。本文详细解释了public、private、protected和默认(包级私有)访问修饰符的区别和用法。

在Java编程语言中,访问修饰符是一个关键字,用于指定类、变量、方法和构造器的访问权限。它们决定了哪些其他类可以访问这些成员。Java提供了四种访问修饰符:public、private、protected和默认(没有显式指定任何修饰符,也称为包级私有)。

  1. public

public修饰符表示成员是公开的,可以被任何其他类访问。无论是同一个包内还是不同包中的类,都可以访问public成员。例如:

  1. public class MyClass {
  2. public int myPublicVariable = 100;
  3. public void myPublicMethod() {
  4. // 方法体
  5. }
  6. }

在这个例子中,myPublicVariable变量和myPublicMethod方法都是公开的,可以被任何其他类访问。

  1. private

private修饰符表示成员是私有的,只能被其所在的类访问。其他类无法直接访问private成员。例如:

  1. public class MyClass {
  2. private int myPrivateVariable = 200;
  3. private void myPrivateMethod() {
  4. // 方法体
  5. }
  6. }

在这个例子中,myPrivateVariable变量和myPrivateMethod方法都是私有的,只能在MyClass类内部访问。

  1. protected

protected修饰符表示成员可以被其所在的包和其他包中的子类访问。也就是说,protected成员在继承关系中是对子类可见的。例如:

  1. public class MyClass {
  2. protected int myProtectedVariable = 300;
  3. protected void myProtectedMethod() {
  4. // 方法体
  5. }
  6. }

在这个例子中,myProtectedVariable变量和myProtectedMethod方法都是受保护的。它们可以在MyClass类所在的包中被访问,也可以被其他包中的MyClass子类访问。

  1. 默认(包级私有)

如果不显式指定任何访问修饰符,则成员具有默认访问权限,也被称为包级私有。默认访问权限意味着成员只能被其所在的包中的其他类访问。例如:

  1. public class MyClass {
  2. int myDefaultVariable = 400;
  3. void myDefaultMethod() {
  4. // 方法体
  5. }
  6. }

在这个例子中,myDefaultVariable变量和myDefaultMethod方法具有默认访问权限。它们只能在MyClass类所在的包中被访问。

总结

  • public:公开的,可以被任何类访问。
  • private:私有的,只能被其所在的类访问。
  • protected:受保护的,可以被其所在的包和其他包中的子类访问。
  • 默认(包级私有):只能被其所在的包中的其他类访问。

选择适当的访问修饰符是面向对象编程中的重要概念,它有助于封装数据、隐藏实现细节并控制类的行为。在实际编程中,应根据需求合理选择访问修饰符来保护类的成员。