《 Java 编程思想》CH06 访问权限控制
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了《 Java 编程思想》CH06 访问权限控制,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2108字,纯文字阅读大概需要4分钟。
内容图文
![《 Java 编程思想》CH06 访问权限控制](/upload/InfoBanner/zyjiaocheng/1176/df724320483d41978943873493fafc40.jpg)
- 访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。
- 重构即重写代码,以使得它更可读,更容易理解,并因此而更具维护性。
- 在面向对象设计中需要考虑一个基本问题:“如何把变动的事物与保持不变的事物区分开来”
- 应该尽可能将一切方法都定为
private
,而仅向客户端程序员公开你愿意让他们使用的方法。
包:库单元
- 包内包含有一组类,它们在单一的名字空间之下被组织在一起
- 为了解决潜在的名字冲突问题,Java使用 package 对名称空间进行完全控制并为每一个类创建唯一的标识符组合。
- 每一个编译单元(.java 文件)只能有一个 public 类。
- 当编译一个 Java 文件时,.java 文件中的每一个类都会生成一个与其类名相同的 .class 文件
- Java 可运行程序是一组可以打包并压缩为一个 Java 文档文件(JAR)的 .class 文件,Java解释器负责这些文件的查找、装载和解释。
- 类库实际上一组类文件。其中每个文件都有一个 public 类,以及任意数量的非 public 类。因此每个文件都有一个构件,如果希望他们都属于同一个群组,则可以使用关键词 package。
- package 语句必须是文件中除了注释外的第一行代码。如
packgae access;
表示当前文件是 access 类库的一部分,标识符为access.ClassName
; - package 名称的第一部分应该是域名的逆序。
- package 名称会被分解为一个目录路径,这个包的所有文件都应该放在该文件夹中,例如包名为
fun.wuxiaobai24.access
,则被解释成$CLASSPATH/fun/wuxiaobai24/access
,其中$CLASSPATH
为环境变量,CLASSPATH 可以指定多个目录。 - 在使用JAR文件时,需要在 CLASSPATH 中指明JAR文件的真实路径,如
CLASSPATH = .;~/jar/access.jar
- 如果将两个包含相同名称的类库用
*
形式导入时,在使用重名的类时,需要指明是那个包中的,如fun.wuxiaobai24.access.ClassName c = new fun.wuxiaobai24.access.ClassName()
- 使用
import static
语句进行静态导入,将某个包中的所有静态方法导入,这样可以直接用静态方法名进行方法调用,而不用在前面加类名,如调用某个类中的 main() 方法时,静态导入可以直接main();
,而普通的导入而需要ClassName.main();
- Java 中 没有 C 中的条件编译,但是可以用 import 来间接实现某些功能。
Java 访问权限修饰词
- 包访问权限允许将包内所有相关的类组合在一起,以使得它们彼此之间可以相互访问作用。
- 继承而来的类可以访问
public
和protected
,只有当两个类在同一个包中时才能访问包访问权限的成员。 - 对于OOP而言,提供访问器和变异器(getter/setter),以读取或改变数值是最优雅的方法,而是 JavaBean 的基本原理。
- 如果没有给文件指定包,Java 将这些文件视为该目录的默认包中,于是给该目录中所有其他的文件提供包访问权限。
- 不能因为在类中某个对象的引用是 private,就认为其他对象就不能拥有该对象。
- protected 成员除了继承的子类可以访问外,它也有包访问权限,即同一个包下的类可以访问它。
- private 可以用来实现单例子模式:
class Soup {
private Soup() {}
private static Soup soup = new Soup();
public static Soup access() {
return soup;
}
}
接口和实现
访问权限的控制常被称为具体实现的隐藏。把数据和方法包装进类中,以及具体的实现的隐藏,常共同被称为封装。其结果是一个同时带有特征和行为的数据类型。
访问权限控制将权限的边界划在数据类型的内部的原因:
- 不用担心客户端程序员偶然地将内部机制当作他们可以使用的接口的一部分。
- 接口和具体实现的分离
类的访问权限
为了控制类的访问权限,修饰词必须出现在关键词 class 之前,如public class ClassName
。同时有一些额外的限制:
- 每个编译单元(文件)都只能有一个 public 类。每个编译单元都有单一的公共接口,同 public 类实现
- public 类的名称必须与文件名相同,包括大小写。
- 编译单元(文件)中可以完全不带 public 类,此时可以随意对文件命名。
类的访问权限只有 public 和包访问权限。如果希望其他任何人对该类有访问权限,可以将所有的构造器都指定为 private,但是该类中 static 成员仍然可以创建和访问。
首发与Code & Fun
原文:https://www.cnblogs.com/wuxiaobai24/p/12310693.html
内容总结
以上是互联网集市为您收集整理的《 Java 编程思想》CH06 访问权限控制全部内容,希望文章能够帮你解决《 Java 编程思想》CH06 访问权限控制所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。