问题1:java的访问控制符
问题2:组件类库和控制“谁能访问类库中组件”
问题3: java里类的复用
一,隐藏实现
1.package是类库的单元,当你用import引入一个完整的类库时,这个package就能为你所用了。例如import java.util.*;如果你只想引入某个类,那么你就可以明确的指出,如 import java.util.ArrayList;之所以用import,是因为它提供了一种管理名字空间(name space)的机制.当你把package放到.java文件的开头,你要表达的意思就是:这个编译单元的public类的名字在package name 下面的。任何想使用这个类的人都必须使用它的全名,或者用import 关键词把package引进来。注意:java里约定用全小写表示包的名字。
为了创建独一无二的package名字,java的做法是:将所有属于同一个包的.class文件放到同一个目录下面。另外java还约定了package名字的第一部分应该是类的创建者的internate域名的反写。这个技巧的第二部分是将package的名字映射到本地机器内部。
2.Java的访问控制符
public,protected,private是java的访问控制符,应该放在类的每个成员的定义部分的前面。不管这个成员是数据还是方法,在java里每样东西都有一个访问控制符。下面我们就说说java里的访问权限:
(1) 默认的访问权限, 通常又称为package权限。所有同属于这个package的类都能访问这个成员,同时这个类也就有了这个package里的其他类的访问权限,但是对于那些不属于同一个package的类,这个成员就是private的了。
(2) public :访问接口的权限 ,当你使用public关键词的时候,那么所有的人都可以访问跟在public后面声明的成员。
(3) private:想碰都碰不到,除非你用这个类(包含这个成员的类)的方法,否则一律不能访问。同一个package里的类也不能访问private成员。
(4) protected:继承的访问权限,protected关键词处理的就是一种被称为继承的概念。所谓的继承就是选一个已有的类作为基类,然后再不改变现有类的前提下,往里面添加新的成员,你也可以修改基类成员的行为方式。如果你创建了一个新的package,并且其中一个类继承了另一个package里的类,那么你只能访问基类里的public成员(当然如果是同一个package里的继承,你还可以访问package权限的成员).如果基类的创建者只想派生类访问某些成员,其他类不能访问,这就是protected关键词要做的。
3.接口(interface)与实现(implementation)
访问权限通常又被称为"隐藏实现"。在将数据和方法集成到了类里的同时,完成“隐藏实现”,这种做法常被称为封装。类的访问权限,不象类里的元素那样丰富,它只有package和public 两种,如果你不希望别人访问这个类,你可以把这个类的构造函数做成private的。那么如何得到这个对象呢?第一,你自己可以用一个静态方法来创建一个对象。第二,它只允许你创建一个这个类的对象。这个对象是被当作类的static private 成员创建的,然后通过一个public 方法返回这个对象即可。
1