第6章 访问权限控制 - 《Java编程思想》读书笔记
第6章 访问权限控制
6.2 Java访问权限修饰词
6.2.3 private:你无法访问
- 可以使用private组织别人访问某个特定的构造器
class Sundae{
private Sundae(){}
static Sundae makeASundae(){
return new Sundae();
}
}
public class IceCream{
public static void main(String[] args){
//! Sundae x = new Sundae();
Sundae x = Sundae.makeASundae();
}
}
- 如果唯一定义的构造器是private的,这个类就无法被继承了
6.2.4 protected:继承访问权限
- protected也提供默认的包访问权限
6.3 接口和实现
- 访问权限的控制常被称为是具体实现的隐藏
- 封装:把数据和方法包装进类中,以及具体实现的隐藏
- 接口和具体实现分离:可以更改所有不是public的东西,而不会破坏客户端代码
6.4 类的访问权限
-
类的访问权限有一些限制:
- 每个编译单元(文件)都只能有一个public类
- public类的名称必须完全于含有该编译单元的文件名想匹配,包括大小写
- 编译单元内也可能完全不带public类(不常用)
-
类只能是包访问权限或public(内部类是特例)
-
如果不希望其他人访问该类,可以把所有构造器都指定为private,但可以在static成员内部创建,由此可以实现单例模式
class Soup2{
private Soup2(){}
private static Soup2 ps1 = new Soup2();
public static Soup2 access(){
return ps1;
}
}
- 如果类不指定修饰符,默认为包访问权限,但包外仍可使用访问权限为public的static成员

浙公网安备 33010602011771号