Java初學者疑難雜症之:一對一和一對多的關係

【威哥說】做爲一個程序員,咱們天天都在「搞」對象,額,「用」對象,感受那個詞都不太好,仍是繼續向下說,對象之間的關係有的是一對一的,也有一對多的(現實中有才好),他們之間究竟是如何的關係,你是否是搞明白了呢?做爲初學者,剛開始學習Java的同窗必定要本身研究一下本文。程序員

【廣告】9月26日開班!!!學習

【正文】今天給你們講解對象的一對一和一對多的關係,這個關係是針對初學者的一個講解,能夠幫助你們明確由實際生活轉化到代碼語句的邏輯。code

首先,咱們針對一個很常見的現實生活中的問題,我們就看看最近的一個新聞:「北京現新款公租自行車,掃碼出行」,這裏估計又會引起一股騎車浪潮。

那麼此處針對騎車事件,在現實生活中理解爲:人蹬車,車就動起來了。那麼把這個概念引伸到我們程序中時,就要理解爲,動是車的方法,咱們人是調用了車的滾動方法,車才跑起來的。同理:好比說人關門,現實生活中就是個關門動做,引伸到程序中就是:關門時門纔有的行爲,人關門實際上是在使用門的關閉動做,從而完成門的關閉。

體現到代碼中來實現的話,首先咱們須要一個門抽取出來的Door類:

class Door{ //定義一個關閉方法,門具備關閉方法 void close(){ System.out.println(「門被關閉了」); }; }對象

如今有我的要關門,那麼這裏咱們就須要一我的的對象:

class Person{ /此時咱們要去關閉門,因此咱們須要一個門的對象,來讓他本身關閉,因此此處咱們封裝一個Door door 類型的變量在本類中做爲成員變量,而後再具體關門的動做裏去使用門本身的關閉方法。此處這種關係就叫作對象的一對一關係/ Door door; Void closeDoor(){ door.close(); } }事件

那麼爲何會有對象的一對一關係的創建,咱們從幾點來進行剖析:

一、低耦合

每一個業務對象單獨創建,避免了產生過多依賴,不利於維護

二、邏輯獨立,任務分配明確

每一個邏輯對象單獨處理本類的業務邏輯,符合實際生活中的真實理念

三、符合面向對象思想

針對不一樣的邏輯對象抽取出來不一樣的類,封裝本類中具備的獨有方法實現。

那麼有了對象的一對一關係,咱們也大體能夠猜到什麼是對象的一對多關係了。可不是一個和多個發生關係哦。

如上一樣是針對關門動做,這裏我得關閉多個門的時候,也是人去關閉多個門,分別調用門的關閉方法:
那麼如何去存儲多個門呢?咱們在程序中使用集合來進行存儲,聲明代碼以下;

class Person{ /*此時咱們使用集合存儲全部數據,關閉時直接遍歷集合進行挨個關閉。這裏一我的對應多個門的關係咱們稱爲一對多關係。 */ List<Door> door; Void closeDoor(){ For(int i = 0 ; i < door.size();i++){ door.get(i).close(); } } }get

一對多關係說白了就是我們在一個類中定義一個數據集合,一個對應多個數據,就叫一對多。初學者必定要邁過這個坎哦。
相關文章
相關標籤/搜索