Java中权限修饰符的权限范围

本文介绍了Java中的四种权限修饰符:public、protected、默认(包内可见)和private。public成员在任何地方都可访问,protected主要为子类保护,无修饰符的成员在同包内可见,而private仅限类内部使用。通过示例解释了权限修饰符的使用场景和限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键字类内部相同包类不同包类
public可存取可存取可存取
protected可存取可存取子类可存取
可存取可存取不可存取
private可存取不可存取不可存取

提示>>>简单来说,依权限大小来区分,就是private、无关键字、protected与public,设计时要使用哪个权限,是依经验或团队讨论而定,如果一开始不知道使用哪个权限,就先使用private,以后视需求再开放权限。

1、public
public权限不论在类内部,相同的包内部,还是在不同的包之间都能够使用。
2、protected
protected权限主要是用来保护子类的,被protected修饰的成员对于本包和其子类可见。
1⃣️基类的protected成员是包内可见的,并且对子类可见;
2⃣️若子类与基类不在同一包中,那么在子类中,子类实例可以访问其从基类继承而来的protected方法,而不能访问基类实例的protected方法。
3、
未声明权限修饰符表示包内友好,表示在同一个包内或同一个.java文件中都能使用,在不同的包内不能使用。
4、private
private权限仅限于在定义它的类内使用,其他地方都不能访问private成员,是一种封装的体现。
只有这个类的内部可以访问:
a、类内部指类的成员函数和定义初始化
b、这个限制是对类的而不是对对象

class Fraction{
    private int a;
    ……
    public void show(Fraction r){
        System.out.println(r.a);
    }
    ……
}

上述代码中在函数show中访问了对象r对私有成员,但是代码是正确对,可以编译实现的。
这就是上面所讲的第二点,private的限制是对类的而不是对对象。即我使用对象r的私有成员a是在类Fraction内部,所以语法上是正确的。而如果我在其他类中直接访问对象r的私有成a,则会出现语法错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值