JAVA编程思想_笔记(六)

来源:互联网 发布:linux tshark抓RTP包 编辑:程序博客网 时间:2024/05/17 23:39
第六章 访问权限控制
访问权限控制等级从最大到最小:public、protected、包访问权限(没有关键字)和private。
6.1 包:库单元
Java源代码文件为编译单元,编译单元中只能有一个public类,此类的名称必须与文件名相同
6.1.1 代码组织
package和import关键字允许的是将单一的全局名字空间分割开,使得无论多少人使用Internet以及Java开始编写类,都不会出现名称冲突问题。
6.1.2 创建独一无二的包名
6.1.3 定制工具库
6.1.4 用import改变行为
6.1.5 对使用包的忠告
无论何时创建包,都已经在给定包的名称的时候隐含地指定了目录结构。
6.2 Java访问权限修饰词
任何事物都具有某种形式的访问权限控制
public、protected和privtae修饰词,如果不提供任何访问权限修饰词,则为“包访问权限”
6.2.1 包访问权限
默认访问权限是指包访问权限(无访问权限关键字),当前包中的所有其他类对于那个成员都有访问权限,对于包外的类,这个成员为private。
取得对某个成员的访问权的唯一途径:
1.使该成员成为public。所有类都可访问该成员。
2.通过不加访问权限修饰词并将其他类放置与同一个包内的方式给成员赋予包访问权。
3.继承。继承而来的类既可以访问public成员也可以访问protected成员(但访问private成员不行)。只有在两个类都处于同一个包内时,他才可以访问包访问权限的成员。
4.提供访问器(accessor)和变异器(mutator)方法(也称作get/set方法),以读取和改变数值。
6.2.2 public:接口访问权限
定义一个public成员时表示该成员对每个人都是可用的。
6.2.3 private:你无法访问
private:除了包含该成员的类之外,其他任何类都无法访问这个成员。
6.2.4 protected:继承访问权限
protected关键字处理的是继承的概念,创建一个包的继承类包,新包唯一可以访问的成员是public成员。(如果同在一个包中的继承,则可以访问所有包访问权限的成员。)
6.3 接口和实现
访问权限的控制常被称为具体实现的隐藏。
把数据和方法包装进类中,以及具体实现的隐藏,共同被称为封装。其结果是一个同时带有特征和行为的数据类型。
访问权限控制将权限的边界划在了数据类型的内部。原因:
1.要设定客户端程序员可以使用和不可以使用的界限。
2.将接口和具体实现进行分离。
 6.4 类的访问权限
 1.每个编译单元(文件)都只能有一个public类。这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出出错信息。
2.public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。所以对于Widget而言,文件的名称必须是Widget.java,而不是wideget.java或WIDGET.java。如果不匹配,同样将得到编译时错误。
3.虽然不是很常用,但编译单元完全不带public类也是可能的。这种情况下,可以随意对文件命名。
 6.5 总结
控制对成员的访问权限的原因:
1,为了使用户不要碰触那些他们不应该碰触的部分,这些部分对于类内部的操作是必要的,但是他们并不属于客户端程序员所需接口的一部分
 2.未来让类库设计者可以更改类的内部工作方式,而不必担心这样会对客户端程序员产生重大的影响。
 
0 0
原创粉丝点击