Java 中,我们用访问权限修饰词确定库中的哪些类对于使用者是可以使用的。
访问权限修饰词有 public,protected,private 和什么都不写。
那么对于类来说,我们只可以用 public 和什么都不写两种。
protected 和 private 是不可以直接修饰类的。
我们在编译器中进行尝试。发现两种都是会提示报错的。说明是不可行的。

而我们使用 public 和不写修饰词是可以通过编译的。

弄清楚了什么可以修饰,什么不可以修饰之后,我们再来详细分别探究一下 public 和 不写修饰词的两种情况。

Public 修饰类

我们在使用public 修饰类的时候,要注意以下两点限制。
1、同一个类中只能有一个public类,多个是不被允许的。

这样是不行的,编译器告诉我们,需要在另一个文件中,重新声明这个class类。
2、public 修饰的类名必须与文件的类名一模一样,大小写敏感。
比如我们的文件名是 TestPublic,我们的public 修饰的类名也必须是 TestPublic,当你小写了一个字母,或者换名,都是不可以的。

再来说一下,当类是使用 public 修饰的时候,证明该类可以被同包或者不同包的任意类都可以访问是完全公开的。

无修饰词的修饰类

与public 不同的是,比如你的文件名叫 TestPublic,你内部的类如果不加修饰词,你可以随意取名。这样是完全不会报错的,但是一般是不会这么做的。

而且如果不使用修饰词修饰,在一个文件中,是可以拥有多个无修饰词的类的。

当你使用无修饰词的类的时候,只有与当前类同包下的类才可以创建对象。其他包是不可以创建这个类的对象的。
所以说,对于类来说,我们要不然使用 public 修饰,要不然使用包访问权限修饰。
我们使用修饰词是来控制对于类的访问。我们如果不想让类被其他人使用,可以将类的构造器方法设置为private。这样其他类就不能创建这个类的对象。

但是这也不是肯定的,我们可以通过一种设计模式,单例模式来实现。这样,即使构造方法是私有的。我们也可以获得这个对象。

重新精读《Java 编程思想》系列之类的访问权限相关推荐

  1. java学习笔记 java编程思想 第6章 访问权限控制

    文章目录 6.1 包:库单元(the library unit) 6.1.1 代码组织 6.1.2 创建独一无二的包名 练习1 练习2 6.1.3 定制工具类 6.1.4 用import改变行为 练习 ...

  2. 重新精读《Java 编程思想》系列之组合与继承

    Java 复用代码的两种方式组合与继承. 组合 组合只需将对象引用置于新类中即可. 比如我们有一个B类,它具有一个say方法,我们在A类中使用B类的方法,就是组合. public class B {p ...

  3. 译者招募 | 《Java编程思想》作者Bruce Eckel新作On Java 8

    硅谷创业之父Paul Graham曾在<黑客与画家>中写道,"判断一种语言是否流行的条件是,一种免费的实现,一本相关书籍,以及语言所依附的计算机系统." 当然,Java ...

  4. 《Java编程思想》读书笔记

    前言:三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第十七章到第十八章的内容,这一次 ...

  5. 《Java编程思想》读书笔记一

    很早之前就买了<Java编程思想>这本书,初学时看这本书看的云里雾里的,实在费劲,就放在一边垫桌底了.感觉这本书是适合C/C++程序员转行到Java学习的一本书,并不适合零基础的初学者去看 ...

  6. Java编程思想第四版学习总结

    Java编程思想第四版学习总结 文章目录 Java编程思想第四版学习总结 第 1 章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重 ...

  7. 浅谈对java编程思想的理解

    浅谈对java编程思想的理解 刚从学校毕业的时候,对于这种概念的理解少之又少 ,只是单纯的从事编码工作,理解也只是停留在对java基本概念的使用上,很局限!随后工作了快三年的时间里,自己不断的理解这种 ...

  8. 35.JAVA编程思想——JAVA IO StreamTokenizer

    35.JAVA编程思想--JAVA IO StreamTokenizer 尽管StreamTokenizer并不是从 InputStream或 OutputStream衍生的,但它只随同InputSt ...

  9. 类的包访问权限:《Java编程思想》中一段话的困惑

    类的包访问权限:<Java编程思想>中一段话的困惑 在<java编程思想第三版>(陈昊鹏 饶若楠等译)的第五章隐藏具体实现中,5.4节的最后一段话是: "正如前面所提 ...

  10. 《Java编程思想》学习笔记(三)——初始化与清理

    一.初始化 初始化其实就是为变量分配内存空间,并确定其初始值的过程.想了解Java中初始化的各种情况,首先要了解Java中变量的类型.根据自己的理解,将Java中的变量类型分成以下几种,虽然可能不太准 ...

最新文章

  1. dubbo协议_阿里P8架构师谈微服务架构:Dubbo+Docker+SpringBoot+Cloud
  2. [转载]读史记札记23:并不是每次跌倒都能够重新站起来
  3. Linux查看tomcat 控制台输出命令, WebSphere中间件日志
  4. dataframe填充到指定的行数
  5. vue和react的区别是什么?
  6. K33 不是平面图_怎么用 PS 做景观平面图?
  7. Oracle--CDB和PDB数据库的启动与关闭说明
  8. linux 显卡扩展坞,我的新玩意儿——Mac mini2018+Razer core(附显卡扩展坞类比图)...
  9. 智能数字看板解决方案
  10. 【弄nèng - Skywalking】入门篇(一)—— Skywalking安装与使用
  11. python循环计算水仙花数_我想用python编个小程序,循环计算用户给处的任意两个整数之间的水仙花数。...
  12. js+json实现哔哩哔哩番剧时间表
  13. PHPMYWIND 教程之 碎片数据的使用GetFragment()
  14. 必看五大安全趋势 Fortinet全球威胁态势报告发布
  15. 苏建林DGCNN模型代码详解
  16. 中国互联网生态报告发布
  17. java条码识别技术_Java 生成、识别条形码
  18. 中关村GHOST XP SP3纯净装机自选CD版2011V3(NTFS)
  19. 1+X Web前端证书中级备考攻略
  20. 高压感应电机市场现状及未来发展趋势

热门文章

  1. 原来程序员在某个圈子还是蛮吃香的嘛~
  2. 皮一皮:南北差异之相亲相爱的一家人系列...
  3. 皮一皮:35岁后你做什么?
  4. 这是我见过最蛋疼的注册中心与API网关实践!
  5. 淘宝面试:说一下 ThreadLocal 的原理?网友:现在面试不看源码不行啊~
  6. 告诉你你也学不会!中台灵感 SuperCell 的管理之道!
  7. 面试必问:怎么保证缓存与数据库的双写一致性?
  8. 公益:开放一台Nacos服务端给各位Spring Cloud爱好者
  9. 死磕Java并发:J.U.C之阻塞队列:LinkedBlockingDeque
  10. pytorch focalloss多分类 单分类