OO Design
第二章上来就做OO Design,用的是最常用的shape的例子,shape包括circle, rectangle, square还有个不规则图形,需要的方法包括rotate()和playSound(). 然后,从procedure和OO的角度做了这个事儿。
因为不规则图形,需要专门绕着某个点rotate()然后play完全不同的Sound,所以,superclass是shape,然后subclass是各种具体形状,其中不规则图形的rotate()和playsound()方法都需要@override。
Override就是某个subclass全方位重写某个method。
创建一个class的时候要思考两个问题
1. Things the object knows (attributes)
2. Things the object does (methods)
明确一个概念,class不是object,但是他是用来生成object的。
书里面说需要两个class,其中一个是具体的xxx class,另一个叫做xxxTestDrive class,只有testDrive里面有main(),因为需要用它来test之前的xxx class功能是否适用。
书中讲到其实并不能用main()去调用各个类,真正的OO是用class调用class的,用object调用object的,而main()只起到tester或者entry的作用。
接着又做了一个GuessGame的例子,包含了GameLauncher, Game, Player三个object。