概述
在Java中,制作者为我们提供了一种非常简洁方便地分类管理工作中需要用到的类的概念,就是“包”。既然有了这个包,那么我们编写的类就存在于这个定义好的包中了。由于需求的限制,大部分类都有相应的权限限制,即有些类中的属性或方法不能够直接为其他类所调用,那么相应的也就出现了“封装"的概念。
通俗的来讲,如果将一个包(可以认为就是一个计算机系统文件夹目录)package(创建包)起来比作一个钱包的话,那么这个包中所包含的类就是钱包中的夹层。各个夹层中可能装有不同的东西,有些是可以让别人看到的,有些是指可以让家人看到的,有些是只有自己可以看到的,有些是默认某些人可见的。那么这些只有自己可以看到的就是“封装”了起来。相应的,上述四个状态分别是public,protected,private,缺省修饰符。
大致理解了修饰符所代表的意思,我们再来讨论一下各个修饰符所能达到的具体作用。
同一包中的类丨不同包中的类丨类内
所隶属的类
private属性和方法
不允许
不允许
允许
被public
protected属性和方法
允许
不允许
允许
修饰符修饰
缺省的属性和方法
允许
不允许
允许
public属性和方法
允许
允许
允许
所隶属的类
private属性和方法
不允许
不允许
允许
被缺省
protected属性和方法
允许
不允许
允许
修饰符修饰
缺省的属性和方法
允许
不允许
允许
public属性和方法
允许
不允许
允许
我们这里先来讨论被public修饰符修饰的类中的属性及方法的调用情况。很容易可以看出,private修饰的属性和方法只可由类内调用,这也就是为什么必须写一个setter和getter来赋值和调用了。那么就像上边说的,同一个包中的类就相当于家人,字面理解就是被保护了,可以给家人,但不可以给外人(包外调用)看。缺省默认为和protected权限一致。public方法和属性则可以被全部调用。
那么缺省修饰符修饰的类中的属性及方法是怎么调用的呢?容易从表中发现,缺省修饰符修饰的类中public属性和方法也不可被包外类调用,即缺省修饰符对于类的修饰优先级大于对于属性方法的优先级(此处是笔者自己的定义,可能有争议),被缺省修饰符修饰的类中内容都不可被包外类调用,这与上一段中的缺省修饰符说明是一致的。
由于笔者编写经历还十分缺少,此文仅作为大家探讨纠正之用,希望读者多提宝贵意见,纠正错误。
注:文中表格出自东软电子出版社
《Java语言程序设计教程》
--周绍斌主编,2012.8
最后
以上就是受伤大地为你收集整理的java中访问控制修饰符什么含义_关于Java中访问控制修饰符的来由及浅解的全部内容,希望文章能够帮你解决java中访问控制修饰符什么含义_关于Java中访问控制修饰符的来由及浅解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复