4.7 包
Java类库分布多个保重,包括Java.lang\java.util、java.net等
标准的包都具有一个层次结构,如同硬盘目录的嵌套一样,也可使用嵌套层次组织包
所有标准的包都处于Java和JavaX的包层次中
一个类可以使用所属包中的所有类,以及其他包中的共有类
import位于源文件的顶部,位于package语句的后面
4.8 C++中#include与import的区别
C++中必须将外部特性的声明加入进来,因为C++编译器无法查看任何文件的内部(除非正在编译并且头文件中明确包含的文件)。
Java可以,如果显式的给出了包名,就可以不使用import。而在C++中不加入头文件,就无法使用
4.9 静态导入包
import不仅可以导入类,还增加了导入静态方法和静态域的功能
如果在原文件的顶部,添加指令
import static java.lang.system.*
就可以使用system类中的静态方法和静态域,而不必加类名前缀
4.10 将类放入保重
要想讲一个类放入包中,必须将包的名字放在源文件的开头,包中定义类的代码之前
如果没有在源文件中放置package语句,则这个文件中的类就会被放置在一个默认的包中
同时需要将包中的文件放到与完整的包名匹配的子目录中
4.11 类路径
类存储在文件系统的子目录中,类的路径必须与包名匹配
类文件可以存储在JAR中,在一个JAR文件中,可以包含多个压缩形式的类文件和子目录,这样既可以节省空间又可以改善性能
jre/lib/rt.jar中包含数千个类库文件。
为了使类能够被多个程序共享,需要做到以下几点
把类放到一个目录中,例如/home/user/classdir需要注意的是,这个目录是包树桩结构的基目录。
如果希望将com.horstmann.corejava.Employee类添加其中,这个文件.class就必须位于子目录/home/user/classdir/com/horstmann/corejava中
将jar文件放在一个目录中
设置类路径,类路径是所有包含类文件的路径集合
4.12 类设计的技巧
1.一定要保证数据私有
2.一定要对数据初始化
3.不要在类中使用过多的基本类型
4.不是所有的域都需要独立的域访问器和域更改器
5.将职责过多的类进行分解
6.类名和方法名要能够体现他们的职责
7.优先使用不可变的类