Java中外部类不能使用private和protected进行修饰怎么办
这篇文章将为大家详细讲解有关Java中外部类不能使用private和protected进行修饰怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
长泰网站建设公司创新互联公司,长泰网站设计制作,有大型网站制作公司丰富经验。已为长泰上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的长泰做网站的公司定做!
Java的外部类为什么不能使用private和protected进行修饰
对于这个问题,一直没有仔细思考,今天整理一下:
对于顶级类(外部类)来说,只有两种修饰符:public
和默认(default
)。因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。
如果类使用了private
修饰符,说明是个内部类。内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(private),同包(default),父子类(protected),任何位置(public)。当一个内部类使用了private修饰后,只能在该类的外部类内部使用。
上面这些都是平时使用司空见惯的,但是为什么是这种情况呢?
可以想一下,一个java项目是不可能在一个class里面完成的。mvc模式中,是把类分为三层,一层层调用类。如果定义为私有的和受保护的就无法调用。换句话说,对于一个java文件,要么就是自己单独运行,要么就是被其他程序作为库调用,如果一个java文件的类被private修饰,那么是不是其他的程序或是类是无法使用它的,那么他作为一个单独的文件就没啥用了。如果它作为单个文件运行,类加载怎么找到它呢,因为它对外不可见。同时,也失去了类的存在意义。因此,类只有public和默认修饰符。
小结
1.类指外部类,最大的类,修饰符有public(表示该类在项目所有类中可以被导入),default(该类只能在同一个package中使用),abstract
,final
2.内部类指位于类内部但不包括位于块、构造器、方法内,且有名称的类,修饰符有public
,private
,protected
访问控制符,也可以用static
,final
关键字修饰,public和private比较简单,一个表示所有可以被所有类访问,一个表示只能被自身访问,protected修饰的成员类可以被同一个包中的类和子类访问。而default
修饰的成员类只能被同一个包中的类访问。
3.局部内部类指位于块、构造器、方法内的有名称类,最多只能有final
修饰
关于“Java中外部类不能使用private和protected进行修饰怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
网页名称:Java中外部类不能使用private和protected进行修饰怎么办
当前网址:http://scyanting.com/article/gcdoeg.html