6.1包:库单元
6.1.1:代码组织
每个编译单元只能有一个public类
6.1.2:创建独一无二的包名
java解释器是这样运行的,首先找出环境变量CLASSPATH,CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH根中产生一个路径名称,解释器就在这些路径下查找你所创建的类。
6.1.3:定制工具库
6.1.4:用import改变行为
6.1.5:对使用包的忠告
务必记住:无论何时创建包,都已经在给定的包的名称的时候隐含地指定了目录结构。这个包必须位于其名称所指定的目录之中,而该目录必须是在意CLASSPATH开始的目录中可以查询到的
6.2:java访问权限修饰符
6.2.1:包访问权限
默认访问权限没有任何关键字,但通常是指包访问权限(有时也表示位friendly)。这就意味着当前的包中的所有其他类对那个成员都有访问权限,但对于这个包外的所有类这个成员变量却是private
6.2.2:public接口访问权限
声明这个成员编变量是谁都可以用的
6.2.3:private:你无法访问
6.2.4:protected:继承访问权限
接口和实现
访问权限控制常常被称作是具体实现的隐藏
有两个原因使得访问权限控制将权限的边界划在了数据类型的内部。
1.要设定客户端程序员可以或者不可以使用的界限
2.将接口与实现进行分离
类的访问权限
有些额外的限制:
1.每个编译单元(文件)只能有一个public类:每个编译单元都有公共的单一的接口向外暴露
2.public;类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。
可以指定构造器为private来限制直接创建某个类的对象