内容简图
较详细细节重点
静态类型检查发生在编译阶段,检查语法错误、类名/函数名错误、参数数目错误、返回类型错误。即在不允许时出现的语法错误和类型匹配错误,可以由机器直接判断。
动态类型检查发生在运行阶段,检查非法参数值、非法返回值、越界、空指针。即关于值和输入引发的错误,只有在运行的时候才能发现。
Final能够保证无子类、无法改变引用、无法被子类重写,但是并不能保证值一定不变。
Snapshot
双线/圈表示不可变值/引用,对于mutable和immutable对象。Snapshot图存在不同。
利用Collections内的unmodifiable对象构造不可变类型:
Collections.unmodifiableList
Collections.unmodifiableSet
Collections.unmodifiableMap
Creator:通过输入,生成实例
Producer:通过已存在实例与输入,生成新实例
Observer:获取实例内的数据
Mutator:对实例内数据进行更改
observational equality:不改变状态时(不进行mutator),两个对象看起来一致(内部属性一致)
behavioral equality:调用同一方法后展示相同结果
如果需要更改输入的参数,需要在post-condition中声明,一般默认不更改输入参数,便于复用。
一个class只能extend一个父类/抽象类,但是可以implement多个接口
protected:protected定义的属性,适用范围为该类及其子类,也即子类能够直接调用;private范围为当前类。
default:用于接口中,作为自动补全方法。