【读书笔记】访问控制符

申明

java的访问控制符

Java提供了三个访问控制符(还有一个是默认不加控制符的控制级别)
由小到大依次排列为:

private –> default(就是那个默认没有的) –> protected –> public

  • private:类成员用private修饰,只能在类的内部被访问
  • default:默认访问控制,可以被相同包下的其他类访问
  • protected:用protected访问控制符修饰,即可以被同一个包中的其他类访问,也可以被不同包中的子类访问(用该修饰符修饰,一般是希望其子类重写这个方法)
  • public:用public修饰的类成员,可以被所有的类访问,不管是否在一个包中,是否有父子继承关系。

问:访问控制符是干嘛的?
答:访问控制符用于控制一个类成员是否可以被其他类访问。

问:局部变量可以用访问控制符来访问吗?
答:不能,因为局部变量的作用域是其所在的方法,不能被其他类访问,因此不能使用访问控制符来修饰。

        {
            //测试在代码块中,用修饰符修饰局部变量
            //public int o = 0;
            //Illegal modifier for the variable o; only final is permitted
            //修饰变量o的修饰符是非法的,只有final修饰符才是被允许修饰的
            //用final试了一下,没报错
            final int i = 10;

            //但是 这有个问题:如下:
            int t = 21;
            //这里没有修饰符修饰,那就是默认的default修饰的?
            //还是因为它是局部变量,只在这个代码块中出现,所以根本没有修饰符这么一说?
        }

问:顶级类可以被修饰吗?可以被哪几种修饰
答:顶级类只有两种访问控制级别:public和默认,不能使用private和protected,因为顶级类既不处于任何类的内部,也没有其他外部类的子类,因此没有意义。public修饰的顶级类可以被所有类使用,默认修饰符修饰的的顶级类只能被同一个包中的所有类访问。


  • 类中的绝大部分属性应该使用private修饰,static修饰的以及一些类似全局变量的属性,可以考虑使用public修饰
  • 辅助实现该类中的其他方法的工具类,应用private修饰
  • 一个类用作其他类的父类,类中的方法仅希望被子类重写,而不想被外界直接调用,则应使用protected修饰
  • 希望给其他类自由使用的方法,应该使用public修饰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值