《thinking in JAVA》片断记录 (九)

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 创建抽象类是希望通过这个通用...

《thinking in JAVA》片断记录 (八)

多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。

早期绑定和后期绑定

C只有早期绑定。
JAVA办有后期绑定(static, final, private这类不能被重写的方法除外)
C++可以通过关键字自由选择早期绑定还是后期绑定。默认为早期绑定,加上virtual是后期绑定。

《thinking in JAVA》片断记录 (十)

内部类的对象能访问其外围类对象的所有成员,而不需要任何特殊条件。 这点与C++的嵌套类的设计非...

中医中的神奇悖论

人参杀人无过,大黄救人无功

解释

人参是有名的补药,但不是每个人都适用,由于误用人参导致的问题,人们不会责怪人参。
大黄是另一种应用广泛的中药,可以治多种病且药效很好。但由于使用了大黄而救治了病人,病人也不会感激大黄的功劳。

原因

“人参杀人无过”,这句好理解。人参是有名的补药,因此病没治好也一般不会认为是人参的问题。
而大黄是典型的泻下药,服用了常常会导致腹泻。给病人开药,如果药里有大黄,需要先跟病人做思想工作,告诉他“使用大黄是有必要的,但是会导致腹泻”等。
病好以后,病人仍会抱怨“病虽然好了,但是大黄导致的腹泻非常难受”等。
这就是所谓“大黄救人无功”。

《thinking in JAVA》片断记录 (七)

main()方法

可以为每个类都创建一个main()方法。
可使每个类的单元测试都变得简单易行。
只有命令行所调用的那个类的main()方法会被调用。