----------------- asp.net+android+io開發s
、.net培訓
、期待與您交流! ---------------
物件導向設計把握乙個重要的經驗:
誰擁有資料,誰就對外提供操作這些資料的方法。
幾個經典並且重要的案例分析:
一:黑板上畫圓,
畫圓,要用到的圓的半徑和圓心,這兩個資料是由圓擁有的,所以畫圓的方法
應該定義在圓上。
二:列車司機緊急剎車,
剎車,是車自身一系列的動作將車剎住,列車司機只不過拿到物件,呼叫了對
象的剎車方法,剎車的一系列資料是由列車所擁有,所以列車應提供剎車的方法。
三:售貨員統計收穫小票的金額,
統計小票金額,用到了小票身上的各項資金資料,所以小票應提供統計金額的
方法。四:你把門關上了等。
關門:需要呼叫門軸轉動,摺頁開啟,鎖舌關閉,這些資料被門所擁有,所以
門應該提供這些方法。
學員的兩個物件導向的面試題,用物件導向的方式設計如下情景。
(1)「兩塊石頭磨成一把石刀,石刀可以砍樹,砍成木材,木材做成椅子」,
有哪些顯式物件:stone、stoneknife、tree、material、chair
兩塊石頭-->一把石刀 ==> 從這裡我們就應該想到兩塊石頭應該作為引數傳進去,
返回的結果是石刀,所以還需要乙個用石頭作原料製作石刀的類,
這裡是knifefactory,它提供乙個方法createknife(stone first, stone second)
返回結果是stoneknife。
石刀把樹看成木材 ==> 這裡我們應該想到stoneknife需要提供乙個方法cut(tree)
返回值是material
木材-->椅子 ==> 需要額外增加個椅子工廠類chai***ctory提供製作椅子的方法
makechair(material)返回結果是chair
stone
knifefactory
stoneknife = knifefactory.createknife(stone first, stone second)
tree
material = stonekinfe.cut(tree)
chai***ctory chair = chai***ctory.makechair(material)
(2)「球從一根繩子的一段移動到了另一端」,
有兩個物件繩子rope和球ball,乙個必須有的方法move()
示意**:
class rope
public point nextpoint(point currentpoint)
} class ball
public void move()
}
----------------
asp.net+android+io開發s
、.net培訓
、期待與您交流! --------------
黑馬程式設計師 物件導向
物件導向 1 物件導向 是基於面向過程的一種思想。面向過程 以函式為基礎,關注實現過程。物件導向 以物件為基礎,關注實現結果。2 物件導向的思想特點 a 是一種更符合人們思考習慣的思想。b 把複雜的事情簡單化了。c 把我們從執行者變成了指揮者。舉例 買電腦。洗衣,做飯。旅遊。把大象裝進冰箱。體現 c...
黑馬程式設計師 物件導向
物件導向是一種思想,把複雜事物簡單化,把面向過程的執行者變成了指揮者。過程其實就是函式,而物件將函式和一些內容封裝。把事物的屬性和行為封裝成物件,再把物件抽象成類。類的訪問修飾符有public和final。而成員的修飾符有public private protected static 成員變數和區域...
黑馬程式設計師 物件導向思想
物件導向的思想 誰有資料,誰就對外提供操作這些資料的方法。例子1 人在黑板畫圓 public class circle private int radius 1 public circle circlecenter,radius public void draw int circlecenter,i...