读在前面:以下文章来自《Java编程思想》第四版 摘抄笔记,感兴趣的可以读一下《Java编程思想》这本书,非常不错,受益匪浅。感谢本书的作者以及译者。
5.访问权限控制
(1) 最大权限到最小权限依次为:Public、protected(继承访问权限)、包访问权限(没有关键字)、private
(2)修饰类: public、默认
(3)修饰属性: private 防止他人误用
(4)访问权限控制解决一个什么样问题?避免类库使用者调用一些不应该调用的类、方法、属性。
(5)访问权限的控制常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是封装。
(6)每个java文件中只能有一个public类。如果在某个编译单元内有一个以上的public类,编译器就会给出出错信息。
(7)请注意,类既不可以是private也不可以是protected的。所以对于类的访问权限,仅有两个选择:包访问权限或public。如果不希望其他任何人对该类拥有访问权限,可以把所有的构造器都指定为private,从而阻止任何人创建该类的对象,但是有一个例外,就是你在该类的static成员内部可以创建。 —DateFormat类,无法new实例化,但是可以通过调用内部方法实现获取实例。如果内部方法定义的是静态类的话,这个类就是单例模式的类。
(8)控制对成员访问权限有两个原因:第一是为了使用户不要触碰那些他们不应该触碰的部分,这些部分对于类内部的操作是必要的,但是它并不属于客户端程序员所需接口的一部分。第二个原因,也是最重要的原因,是为了让类库设计者可以更改类的内部工作方式,而不必担心这样会对 客户端程序员产生重大影响。