Think in Java读书笔记--隐藏实施过程
在面向对象的设计过程中,一个非常重要的一点就是要将发生变化的东西和保持不变的东西分隔开。
包是Java中一个很重要的概念,在用Java进行软件开发的时候,经常会使用到包,不同的包里面可能会存在名字相同的类,因此要注意冲突处理。正是由于这种潜在的名字冲突,因此要对Java中的命名空间进行完整的控制。
创建Java源码文件的时候,通常叫一个编辑单元(编译单元),它必须以.java作为文件名的后缀,并且编译单元里只有一个public类,它必须与编译文件有相同的名字(包括大小写)。编译一个.Java文件时,会生成一系列.class文件,对应于.Java文件中的每个类。这样最终从少量的.,Java文件中得到了很多.class文件,可以将它们封装、压缩到一个jar文件中。
package语句必须作为java源文件的第一个非注释语句,它的作用是指出这个源文件属于哪一个库,库的名字中所有单词都应该小写。
作为一名库设计者,一定要记住package和import关键字允许我们做的事情就是分割单个全局命名空间,保证我们不会遇到命名冲突。
命名中的冲突:
导入语句:
import com.bruceeckel.util.*;
import java.util.*;
如果这两个包里面都包含一个Vector类,那么就会造成潜在的冲突,如果现在试着生成一个Vector类的对象,就会存在冲突,因为编译器不知道要用哪个包里面的Vector类来生成对象。因此,这时可以采用这种形式:
java.util.Vector oVector = new java.util.Vector()。