黑馬程式設計師 23再談物件導向

2021-06-18 07:48:31 字數 1546 閱讀 7918

----------------- 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...