TIJ摘要:访问控制权限
2024-09-04 18:02:53
- 重构的原动力之一:发现有更好的方式去实现相同的功能。
- OOP需要考虑的基本问题:如何把变动的事物与不变的事物区分开来。
- 访问控制权限:以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的。访问控制的等级,从最大权限到最小权限依次为:public、protected、包访问权限和private。
- 由于名字之间的潜在冲突,在Java中对名称空间进行完全控制并为每个类创建唯一的标识符就成了非常重要的事情。
- 每个编译单元只能有一个public类,否则编译器就不会接受。如果在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,这是因为它们不是public类,而且它们主要是用来为主public类提供支持。
- 当编译一个.Java文件时,在.java文件中的每个类都会有一个输出文件,而在该输出文件的名称与.java文件中的每个类的名称相同,至少多了一个后缀名.class。
- java可运行程序:是一组可以打包并压缩为一个java文档文件(JAR,使用java的jar文档生成器)的.class文件。
- 类库实际上是一组类文件。
- 如果使用package语句,它必须是文件中除注释外的第一句程序代码。
- java包的命名规则全部使用小写字母,包括中间的字也是如此。
- package和import关键字允许你做的,是将单一的全局名字空间分割开,使无论多少使用Internet以及java开始编写类,都不会出现名称冲突问题。
- java解释器的运行过程如下:首先,找出环境变量CLASSPATH(可以通过操作系统来设置,有时也可以通过通过安装程序—用来在你的机器上安装Java或给予java的工具—来设置)。CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH根中产生一个路径名称。得到路径名称会与CLASSPATH中的各个不同的项相链接,解释器就在这些目录中查找与你所要创建的类名称相关的.class文件。
- C的条件编译:一般情况下,源程序中所有的行都参加编译,但有时希望对其中的一部分内容只是在满足一定条件下才进行编译,即对一部分内容指定编译条件。java中没有条件编译。
- 默认访问权限没有任何关键字,但通常是指包访问权限。这就意味着当前包中的所有其他类对那个成员都有访问权限,但对于这个包之外的所有类,这个成员却是private。
- 不要错误地认为java总是将当前目录视为查找行为的起点之一。
- private的一个用处, 用private标记构造函数,这样就可以控制如何创建对象,并阻止别人直接访问某个特定的构造器。这样的方式可以实现单例模式。
- 对于类中的域,除非必须公开底层实现细目,否则就应该将所有的域指定为private.
- 出于两个很重要的原因,访问权限控制将权限的边界划在了数据类型的内部。第一个原因是要设定客户端程序员可以使用和不可以使用的界限。第二个原因即将接口和具体实现相分离。
版权声明:本文为博主原创文章,未经博主允许不得转载。
最新文章
- JS跨域
- sdut 2603:Rescue The Princess(第四届山东省省赛原题,计算几何,向量旋转 + 向量交点)
- linux设备驱动归纳总结(八):4.总线热插拔【转】
- HDU 5313 bitset优化背包
- 简易记事本(演示java文件io)
- VTL说明文档
- 【原创】一个基于简单剪枝的DFS解数独程序
- 服务器性能分析工具gprof的使用及没有生成gmon.out文件的原因
- MySQL数据类型概念
- MySQL 执行计划中Extra(Using where,Using index,Using index condition,Using index,Using where)的浅析
- CF1012A Photo of The Sky
- PY序
- 雨燕apply项目总结
- Derek解读Bytom源码-protobuf生成比原核心代码
- Mysql 数据类型(基础5)
- web工程迁移---jboss5迁移到jboss6
- 破解Unity5.3.4f1
- [日常] Go语言圣经-WEB服务与习题
- redis内存模型
- [Objective-C语言教程]继承(25)
热门文章
- 对vector,list的操作函数
- Could not autowire field: private javax.servlet.http.HttpServletRequest
- INSPIRED启示录 读书笔记 - 第38章 打造企业级产品的经验
- Python 字典Dict概念和操作
- 微软官网的office外接程序开发
- How to Delete using INNER JOIN with SQL Server?
- Java -- JDBC mysql读写大数据,文本 和 二进制文件
- 不理解use explanatory variables
- 使用npm安装github仓库中的代码
- review18