问答题782/1053访问修饰符public,private,protected,以及不写(默认)时的区别?

难度:
2021-11-02 创建

参考答案:

在 Java 中,访问修饰符用于控制类、方法、变量和构造方法的访问权限。以下是四种主要访问修饰符的区别:

1. public

  • 访问权限public 修饰的成员可以在任何地方访问,无论是同一个包内还是不同包内。
  • 使用场景:常用于希望被广泛访问的类、方法或变量。
  • 例子
    1public class MyClass { 2 public int x; 3}
    x 可以在任何地方访问。

2. private

  • 访问权限private 修饰的成员只能在当前类内访问,外部类无法访问。
  • 使用场景:通常用于封装类内部的实现细节,只能通过方法(如 getter 和 setter)来访问。
  • 例子
    1public class MyClass { 2 private int x; 3 4 public int getX() { 5 return x; 6 } 7}
    x 只能在 MyClass 内部访问,外部类不能直接访问。

3. protected

  • 访问权限protected 修饰的成员可以在同一个包内的其他类中访问,或者在不同包的子类中访问。外部非子类无法访问。
  • 使用场景:常用于允许子类访问父类的字段或方法,但又不希望其他类能直接访问。
  • 例子
    1public class MyClass { 2 protected int x; 3}
    x 可以在同一个包内的其他类和 MyClass 的子类中访问。

4. 不写修饰符(默认)

  • 访问权限:没有写访问修饰符时,成员具有包内访问权限(包访问级别)。只能在同一个包内的类中访问,外部包无法访问。
  • 使用场景:适用于希望在同一包内共享数据,但不希望外部包访问的情况。
  • 例子
    1public class MyClass { 2 int x; // 默认访问权限 3}
    x 可以在同一个包内的其他类中访问,但不能在不同包内的类中访问。

最近更新时间:2024-12-09