访问权限控制
6.1包:库单元
包内含有一组类,它们在单一的名字空间之下被组织在了一起。
编译单元:一个Java源代码文件,每个编译单元内只能有一个public类,且类名与文件名相同。
类库实际上是一组文件,其中每个文件都有一个public类,以及任意数量的非public类。每个文件都有一个构件(每个构件都有它们自己独立的.java和.class文件),如果希望这些构件从属于同一个群组,就可以使用关键字package。
package名称的第一部分是类的创建者的反顺序的Internet域名。
6.2Java访问权限修饰词
包访问权限;
public:接口访问权限;
protected:继承访问权限;
6.3接口和实现
访问权限的控制常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是封装。
6.4类的访问权限
public
包访问权限
如果没能为类访问权限指定一个访问修饰符,它就会默认得到包访问权限。这就意味着该类的对象可以由包内任何其他类来创建,但在包外是不行的。然而,如果该来的某个static成员是public的话,则客户端程序员仍旧可以调用该static成员,尽管他们不能生成该类的对象。
总结
控制对成员的访问权限有两个原因:使用户不要碰触那些他们不该碰触的部分,这些部分对类内部的操作是必要的,但是它并不属于客户端程序员所需接口的一部分;为了让类库设计者可以更改类的内部工作方式,而不必担心这样会对客户端程序员产生重大的影响。