Java 访问控制符详细--private,默认,protected,public

访问控制符(*)

访问控制符同类同包子类不同包
publicyyyy
protectedyyyn
默认(就是什么都不写)yynn
privateynnn

注意点1:这个就是很笼统的一个表。得重新仔细划分

类的关系:同一个目录只是当前层,比如说C:a/b/c a/b/d 在c目录下的才是同包
    同类:就是当前类自身。
    同包子类:同一个目录下的子类
    同包类:同一个目录下的同级类
    同包子包子类:同一个目录下的目录的子类
    同包子包类:同一个目录下的目录的类
    不同包类:不在一个目录下的类
    不同包子类:不在一个目录下的子类
访问控制符同类同包子类同包类同包子包子类同包子包类不同包类不同包子类
publicyyyyyyy
protectedyyyy(*)nny(*)
默认yyynnnn
privateynnnnnn

简述:public在哪都可以,private只有当前类内。protect同类+同包(子包不行)+子类(只要有继承无论在哪)。默认同类+同包(子包不行)

​ 而且这些修饰符可以修饰类,方法,属性。

注意点2: 你测试protected时的子类访问权限时需要注意下面的。

package socker.a1;
public class A1 {
    protected void a1(){
        System.out.println("a1");
    }
}
--------------------------------------------------
package socker.a2;//不同包

import socker.a1.A1;

public class A2 extends A1{
    public static void main(String[] args) {
        A2 a2 = new A2();//在这里你得使用A2去使用继承自A1的方法。
        //A1 a1 = new A1(); 这样是不行的,对与不同包的类来说protected是不可见的
        a2.a1();
    }
}
---------------------------------------------------
//同样的子包下的继承也是需要去使用当前类自己的对象继承来的方法
package socker.a1.a11;//子包

import socker.a1.A1;

public class A4 extends A1 {
    public static void main(String[] args) {
        A4 a4 = new A4();
        a4.a1();
    }
}

目录结构:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值