6 访问权限控制
访问权限等级:
从大到小依次为 public,protected,包访问权限(没有关键字),private
使用package关键字将构建捆绑到一个单元中。
6.1 包:库单元
- 1 java代码存在.java文件中,一个.java文件称为一个编译单元
- 2 一个.java文件中可以有多个类,但只能有一个public类,并且这个public类的类名必须与文件名相同(包括大小写)
- 3 当编译一个.java文件后,文件中每个类对应一个输出文件,文件名与类名相同,后缀都是.class
- 4 可以使用jar文档生成工具将许多.class文件打包压缩成一个.jar文件
- 5 如果一个.java文件第一行是
package access;
表明该编译单元是名为access类库的一部分,也就是该编译单元的public类名称位于access名称的保护中,在其他单元中想使用此类,必须先指定access
6.4 类访问权限
类可以用public 修饰,或者无修饰(表明类是包访问权限),但类不可以是private或者protected的(内部类例外)
如果把一个类的全部构造器指定为private的,可以阻止任何人直接创建该类的对象(也就是new 一个对象),但有一个例外,你可以在该类的static成员内部调用构造方法,如
class Soup1{
private Soup1(){}
public static Soup1 makeSoup(){
return new Soup1();
}
}
或者
class Soup2{
private Soup2(){}
private Static Soup2 soup = new Soup2();
public static Soup2 access(){
return soup;
}
}
第二种方法也被称作单例模式(singleton)