Java封装讲解 访问限定符(private/default/protected/public)

1. public 访问限定符

  • 作用:当一个类、方法或变量被声明为 public 时,它在所有地方都是可见的。任何类都可以访问它,无论它们是否在同一个包中。
  • 使用场景:当你希望某个类或成员可以被任何其他类访问时,使用 public

示例:

public class Example {
    public int publicField = 10;

    public void publicMethod() {
        System.out.println("This is a public method.");
    }
}
位置同一个类同一个包子类任何地方
public✔️✔️✔️✔️

2. protected 访问限定符

  • 作用protected 修饰的成员可以在同一个包中的类以及子类中访问(包括不同包中的子类)。但是,如果不在同一个包且不是子类,则不能访问。
  • 使用场景:当你希望某个成员对同包内的类和继承该类的子类开放访问时,使用 protected

示例:

public class Example {
    protected int protectedField = 20;

    protected void protectedMethod() {
        System.out.println("This is a protected method.");
    }
}

子类:

public class Subclass extends Example {
    public void accessProtected() {
        System.out.println(protectedField); // 子类可以访问protected成员
        protectedMethod(); // 子类可以调用protected方法
    }
}

访问权限图:

位置同一个类同一个包子类任何地方
protected✔️✔️✔️(包括不同包的子类)

3. 默认(包级别)访问权限

  • 作用:当没有指定访问限定符时,Java使用默认(包级别)的访问权限,也称为包私有(Package-private)。这种情况下,成员只能在同一个包内的类中访问,不能被其他包中的类访问。
  • 使用场景:当你希望类或成员只在同一包中使用,而不希望被其他包中的类访问时,使用默认权限

示例:

class Example {
    int defaultField = 30;

    void defaultMethod() {
        System.out.println("This is a default access method.");
    }
}

访问权限图:

位置同一个类同一个包子类任何地方
默认✔️✔️❌(不同包的子类)

4. private 访问限定符

  • 作用private 成员只能在所属类内部访问,其他类(包括子类和同包中的类)都不能访问。即使是子类也无法继承或访问 private 成员。
  • 使用场景:当你希望某个成员完全封装在类内部,不允许其他类或对象访问时,使用 private

示例:

public class Example {
    private int privateField = 40;

    private void privateMethod() {
        System.out.println("This is a private method.");
    }

    public void accessPrivate() {
        System.out.println(privateField); // 在类内部访问
        privateMethod(); // 类内部可以访问private成员
    }
}

访问权限图:

位置同一个类同一个包子类任何地方
private✔️

5. 访问权限总结

访问限定符同一个类同一个包子类(不同包)任何地方
public✔️✔️✔️✔️
protected✔️✔️✔️
默认✔️✔️
private✔️
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值