在Java中,制作者为我们提供了一种非常简洁方便地分类管理工作中需要用到的类的概念,就是“包”。既然有了这个包,那么我们编写的类就存在于这个定义好的包中了。由于需求的限制,大部分类都有相应的权限限制,即有些类中的属性或方法不能够直接为其他类所调用,那么相应的也就出现了“封装"的概念。

通俗的来讲,如果将一个包(可以认为就是一个计算机系统文件夹目录)package(创建包)起来比作一个钱包的话,那么这个包中所包含的​类就是钱包中的夹层。各个夹层中可能装有不同的东西,有些是可以让别人看到的,有些是指可以让家人看到的,有些是只有自己可以看到的,有些是默认某些人可见的。那么这些只有自己可以看到的就是“封装”了起来。相应的,上述四个状态分别是public,protected,private,缺省修饰符。

大致理解了修饰符所代表的意思,我们再来讨论一下各个修饰符所能达到的具体作用。

同一包中的类丨不同包中的类丨类内

所隶属的类

private属性和方法

不允许 ​

不允许

允许

被public

protected属性和方法

允许

不允许

允许

修饰符修饰

缺省的属性和方法

允许

不允许

允许

public属性和方法

允许​

允许

允许

​所隶属的类

private属性和方法

不允许

不允许

允许

被缺省

protected属性和方法

允许

不允许

允许

修饰符修饰

缺省的属性和方法

允许

不允许

允许

public属性和方法

允许​

不允许

允许

我们这里先来讨论被public修饰符修饰的类中的属性及方法的调用情况。很容易可以看出,private修饰的属性和方法只可由类内调用,这也就是为什么必须写一个setter和getter来赋值和调用了。那么就像上边说的,同一个包中的类就相当于家人,字面理解就是被保护了,可以给家人,但不可以给外人(包外调用)看。缺省默认为和protected权限一致。public方法和属性则可以被全部调用。​

那么缺省修饰符修饰的类中的属性及方法是怎么调用的呢?容易从表中发现,缺省修饰符修饰的类中public属性和方法也不可被包外类调用,即缺省修饰符对于类的修饰优先级大于对于属性方法的优先级(此处是笔者自己的定义,可能有争议),被缺省修饰符修饰的类中内容都不可被包外类调用,这与上一段中的缺省修饰符说明是一致的。

由于​笔者编写经历还十分缺少,此文仅作为大家探讨纠正之用,希望读者多提宝贵意见,纠正错误。

注:文中表格出自东软电子出版社

《Java语言程序设计教程》

--周绍斌主编,2012.8​​

java中访问控制修饰符什么含义_关于Java中访问控制修饰符的来由及浅解相关推荐

  1. java 修饰符 访问控制符_《Java基础知识》Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public classclassName {//body of class }private boolea ...

  2. Java接口有时有结果 有时没有_《Java程序员面试笔试宝典》之为什么Java中有些接口没有任何方法...

    由于Java不支持多重继承,即一个类只能有一个父类,为了克服单继承的缺点,Java语言引入了接口这一概念.接口是抽象方法定义的集合(接口中也可以定义一些常量值),是一种特殊的抽象类.接口中只包含方法的 ...

  3. java 中的finally你知多少_「JAVA」详述Java异常体系,处理异常时配上finally效果更佳...

    什么是异常 从事Java开发的小伙伴对于"异常"应该不陌生,因为每天都会遇到不少异常,或捕获,或抛出.那究竟什么是异常?异常即非正常的,不同于平常.一般化的情况.在平时生活中,医生 ...

  4. 在java中下列描述错误的是_在 JAVA 中 , 关于类的方法 , 下列描述错误的是 ()._学小易找答案...

    [多选题]价值的特性是 [简答题]输入任一字符串,统计其中数字,字母及其它字符个数 .(25分) [填空题]1.产品整体包括哪五个基本层次 2核心层次产品最基本的层次,是产品的_____ [单选题]纸 ...

  5. JAVA共有几种窗体布局方式_在Java GUI程序开发中常见的三种布局管理器是什么

    答:FlowLayout 流式布局,从左到右,如果到边界就换行再从左到右. BorderLayout 边界布局(默认布局方式),按东西南北中五个方向来布局,默认是中.后设置在同样位置的控件会覆盖之前的 ...

  6. java两个文件夹比较路径_比较Java中两个文件的路径

    java两个文件夹比较路径 Given the paths of the two files and we have two compare the paths of the files in Jav ...

  7. Java中脚手架是干什么用的_构建java web脚手架

    前言 程序员无论使用哪种语言进行开发,如果想更快地完成任务,使用一个趁手的ide是第一步,这里我推荐使用IntelliJ IDEA.具体原因我不多说了,大家可以尝试用用看看是不是很贴合程序员的需求.第 ...

  8. java声明异常必须抛出吗_简述java中抛出异常的两种方式

    java编程中经常遇到异常,这时就需要利用java中的异常抛出机制,在java中提供了两种抛出异常的方法:try{}  catch() {}和throw. 一.抛出异常的两种方式 (1) 首先我们来看 ...

  9. mysql中以下正确的sql是_总结MySQL中SQL语法的使用

    --where子句操作符: where子句操作符 = 等于 <> 不等于(标准语法) != 不等于(非标准语法,可移植性差) < 小于 <= 小于等于 > 大于 > ...

最新文章

  1. BM提供支持云的量子计算平台,以加速创新
  2. TypeError: the JSON object must be str, bytes or bytearray, not dict
  3. 网络营销(学习王宜的“赢在网络营销”)重点笔记01
  4. Oracle入门心得(2)
  5. Python分支结构你真的搞定了吗?
  6. java提示找不到或无法加载主类
  7. centos6.8安装mysql6.5_centos6.8 yum安装mysql 5.6 (完整)
  8. matlab的和操作
  9. 【数据库】sql连表查询
  10. python arduino 蓝牙_树莓和Arduino之间的蓝牙通讯
  11. 通过标签向flash传递参数
  12. EEGLAB教程-1.2通道定位
  13. Unity 贴花/喷漆功能的原理、Projector组件的原理与优化
  14. go panic 与 recover
  15. 沈阳城市建设学院计算机2019,沈阳城市建设学院2019-2020年校历及寒假放假时间安排,什么时候放寒假...
  16. Stellarium0.9.0新功能
  17. android egl10和egl14
  18. Qlikview 权限配置和表关联
  19. JS面试题汇总(六)
  20. oracle表空间datafile,orale tablespacedatafile -- oracle表空间

热门文章

  1. python - EDA - 1 统计缺失值
  2. 设计模式--缺省适配模式
  3. 八位二进制数码管显示multisim_显示屏基础知识(LED电子显示屏的维修资料(芯片))4...
  4. springboot 集成mybatis_Spring Boot 集成Mybatis实现多数据源
  5. 多线程中的线程安全问题
  6. python程序设计搜题软件下载_智慧职教云课堂APPPython程序设计答案搜题公众号
  7. 95.91p30.space\/index.php,关于 ThinkPHP6 分页样式的定制及点击下一页搜索条件丢失的解决方法...
  8. java 返回第k小的数_java – 给定n和k,返回第k个置换序列
  9. java 反射创建对象并赋值_[原创] Java JDBC连接数据库,反射创建实体类对象并赋值数据库行记录(支持存储过程)...
  10. 语法分析程序的设计与实现_编译工程7:语法分析(5)