public private protected和默认的区别
Java中对类以及类中的成员变量和成员方法通过访问控制符(access specifier)进行区分控制。刚学Java语言的同学可能对public private protected以及默认(一般称包访问权限)的区别不是很清楚,尤其是protected和默认的区别。本篇就来说说这个事儿。
操作方法
(01)private这个大家都知道,就是只有在本类中才能访问。
(02)public正好和private相反,在任何地方都能访问。
(03)protected是在本包内能访问,而在包外只有它的子类能访问。如图,package1这个包中有一个A类,它有一个成员变量a,用protected访问控制符进行修饰。
(04)如图,在本包中另一个类继承自A,它是可以访问A的这个成员变量的。如果是本包中的一个普通类(也就是不继承自A),也是可以访问A的成员变量的,这个大家可以自行测试。
(05)如图,在别的包中的一个普通类访问A的成员变量,这个是不可以的。
(06)但是在别的包中的子类,也就是继承自A的类,访问A的成员变量是可以的。
(07)再来说默认(包访问权限)。如图,还是package1中的A类的成员变量a,这一次什么也不加。
(08)和protected一样,只要是同一个包下的类,不管是子类还是其它普通的类,都可以访问A的这个成员变量。
(09)在另一个包中的类,如果是普通类,和protected一样,是不能访问A类中的这个成员变量的。
(10)在另一个包中的类,即使是子类,也是不能访问A类中的这个成员变量的。这一点和protected不一样。
(11)总结一下,private是只有本类中才能访问,public是都能访问,默认(包访问权限)是只有本包内才能访问,包括本包内的子类和普通类,而protected是只要本包内就能访问,包括本包内的子类和普通类,另外别的包内的子类也能访问,但是普通类不能访问。所以说protected和默认(包访问权限)是很相似的,在同一个包内,它们是一样的,而在另一个包内,默认是不能访问的,而protected是只有子类能访问。
特别提示
如果您还有其它疑问,可以在评论里告诉我。如果您有急需解决的问题,可以查看右侧我的个人介绍。
您也可以点击分享,把本文分享给更多需要的人。
我的新浪微博昵称为“段子批发商”,欢迎互粉啊。
-
小米优惠券怎么用
拥有了小米优惠券该怎么使用呢?哈哈,小米优惠券相当于代金券,可以在您支付购买的小米手机及其配件时使用优惠券,可以达到减免部分费用的效果,哈哈哈,接下来就让我来帮助大家看看怎么使用小米优惠券。操作方法(01)首先,提醒大家啊,小米优惠券只有在小米商城才能使用哦~大...
-
解决TeamViewer无法按给定网络地址联系伙伴
在使用TeamViewer远程控制电脑的时候,突然出现下图提示无法建立连接,无法按给定网络地址联系伙伴。然后不管怎么试,都弹出这个连接地址。下面是本人亲身经历和排除方法,仅供参考。操作方法(01)首先第一步就是修复一下网络连接,打开网络和共享中心。(02)选择自己使用的上...
-
CentOS7关闭防火墙和SELinux
本文主要讲述了如何在CentOS7上临时关闭防火墙、永久关闭防火墙、临时关闭SELinux和永久关闭SELinux的方法。出自openstackblog。防火墙(firewalld)(01)临时关闭防火墙systemctlstopfirewalld(02)永久防火墙开机自启动systemctldisablefirewalld(03)临时打开防火墙syst...
-
爬虫代码怎么运行
如何运行爬虫代码,爬虫代码有很多,这里列举最常见的爬虫代码的运行方法操作方法(01)打开python爬虫代码的源码目录,通常开始文件为,,,寻找有没有类似的python文件,如果没有,请看源码的readme文件,里面会有说明,若以上都没有,你可能需要python方面的知识,自己去看源码,找到...