本文是对《On Java 8》即《Java编程思想》第五版的知识点汇总整理,仅供学习分享。
封装
类库开发者必须同意在修改类库中的一个类时,不会移除已有的方法,因为那样将会破坏客户端程序员的代码。与之相反的情况更加复杂。在有成员属性的情况下,类库开发者如何知道哪些属性被客户端程序员使用?这同样会发生在那些只为实现类库类而创建的方法上,它们也不是设计成可供客户端程序员调用的。如果类库开发者想删除旧的实现,添加新的实现,结果会怎样呢?任何这些成员的改动都可能破环客户端程序员的代码。因此类库开发者会被束缚,不能修改任何事物。
为了解决这一问题,Java 提供了访问修饰符(access specifier)供类库开发者指明哪些对于客户端程序员是可用的,哪些是不可用的。
package
-
类库组件的概念和对类库组件访问的控制仍然不完善。其中仍然存在问题就是如何将类库组件捆绑到一个内聚的类库单元中。Java 中通过 package 关键字加以控制,类在相同包下还是在不同包下,会影响访问修饰符。
-
包内包含一组类,它们被组织在一个单独的命名空间(namespace)下。
import
导入,是为了提供一种管理命名空间的机制。所有类名之间都是相互隔离的。 -
一个 Java 源代码文件称为一个*编译单元(compilation unit)*每个编译单元的文件名后缀必须是 .java。在编译单元中可以有一个 public 类,它的类名必须与文件名相同。每个编译单元中只能有一个 public 类,否则编译器不接受。
-
在编译少量的