Java编程思想之六-访问权限控制
- 摘要:Java编程思想之六-访问权限控制访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关,访问权限机制解决的问题是:如何把变动的事物与保持不变的事物区分开来。为了解决类库的开发者有权限对类库进行修改和改进并且能够确保客户代码不会因为这些改动而受到影响,Java提供了权限修饰符,权限由大到小依次为:public,protected,default和private。类库设计员会尽可能将一切方法都定为private,而仅向客户端程序员公开他所愿意让他们使用的方法,这样的做法完全正确
- 标签:Java 编程 访问权限
Java编程思想之六-访问权限控制
?
- 访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关,访问权限机制解决的问题是:如何把变动的事物与保持不变的事物区分开来。
- 为了解决类库的开发者有权限对类库进行修改和改进并且能够确保客户代码不会因为这些改动而受到影响,Java提供了权限修饰符,权限由大到小依次为:public, protected, default和private。
- 类库设计员会尽可能将一切方法都定为private,而仅向客户端程序员公开他所愿意让他们使用的方法,这样的做法完全正确,但是对于那些经常使用别的语言编程并在访问事物时不受任何限制的人而言,这就于他们的直觉相违背。
- Java用关键字package来控制谁有权来取用该类库构件,访问权限修饰词也会因类是否存在于一个相同的包中而受到影响。
- Java.util中有一个叫做ArrayList的类,使用ArrayList的一种方式是用其全名java.util.ArrayList来指定。
- 当编译一个.java文件时,在.java文件中的每个类都会有一个输出文件,输出文件的名称与.java文件中每个类的名称相同,只是多了一个后缀名.class,Java可运行程序是一组可以打包并压缩为一个Java文档文件(JAR,使用Java的jar文档生成器)的.class文件。
- 包访问权限允许将包内所有相关的类组合起来,以使它们彼此之间可以轻松地相互作用,把类放在同一个包内时,也就给它们赋予了互相访问的权限。
- Public:接口访问权限,使用public关键字,意味着public之后紧跟着的成员声明自己对每个人都是可用的,尤其是使用类库的客户程序员更是如此。
- Private:你无法访问,关键字private的意思是,除了包含该成员的类之外,其他任何类都无法访问这个成员,处在同一个包内的其他类不可以访问private成员。
- Protected:继承访问权限,关键字protected处理的是继承的概念,也就是说protected修饰的类可以被同包其他类访问,也可以被不同包但是其子类的类访问。
- 访问权限的控制常被称为是具体实现的隐藏,把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是封装,其结果是一个同时带有特征和行为的数据类型。
- 访问权限控制将权限的边界划在了数据类型的内部,是要设定客户断程序员可以使用和不可以使用的界限,可以在结构中建立自己的内部机制,而不必担心客户断程序员会偶然地将内部机制当作是他们可以使用的接口的一部分。
- 访问权限控制将权限的边界划在了数据类型的内部,也是将接口和具体实现相分离,如果结构是用于一组程序之中,而客户端程序员除了可以向接口发送信息之外什么也不可以做的话,那么就可以随意更改所有不是public的东西,而不会破坏客户端代码。
- 每个编译单元(文件)都只能有一个public类,这说明每个编译单元都有单一的公共接口,用public类来实现,该接口可以按要求包含众多的支持包访问权限的类,如果在某个编译单元含有一个以上的public类,编译器就会给出出错信息。
- Public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。
- 编译单元内完全不带public类也是可能的,再这种情况下,可以随意对文件命名。
- 采用单例(singleton)模式类,意味着该类有且仅能创建一个对象。
?