final &static关键字
private final String name; 当constuctor调用时一定要被初始化
public static final double PI = 3.14..... // final type in class field
final对象和final引用
public class System{
public static final PrintStream out = ...
}
final类型的引用一旦初始化,不可以指向其他对象
ep:
out = new PrintStream(); // compile-time error
final类型的类,表示此类不可以继承,作为声明一个不可变类的操作之一
不允许对对象进行修改,所以对final class String 的修改都在new 一个新对象的基础上进行
Factory method
工厂方法这里没太看懂,应该也是私有化了constuctor,这里和单例模式相同
单例模式通过static方法,返回同一个私有化对象
而工厂模式通过几个不同类型的static方法,返回任意数量的,不同Style的对象?
还可以返回子类对象?这里先记录
函数参数
与C++的 pbv/pbr不同
java中只有pass by value 的形式
int doSum(vector& v)这种是典型的C++的pbr模式,对参数的修改在函数返回后仍然有效。
java中 int doSum(vector v)传入的v的引用,在函数调用的过程中会复制v,类似于*v的方式,对variable v的修改函数返回后无效,但修改v指向的对象当然是有效的
field和local variable初始化区别
这一章后面就介绍了package、class path等内容
package类的作用域在protected和private之间