從C 到 OC----從面向過程到物件導向的轉變

來源:互聯網
上載者:User

標籤:資料   sp   c   代碼   r   bs   學習   不同的   對象   

1.在C的學習中,我們寫一段代碼,通常考慮整個事件的發展的過程,開始--經過--結果,而在OC中,這樣的思想需要整個轉變為,做一件事,需要哪些人物、事物參與,他們分別負責做什麼。比如我們玩植物大戰殭屍遊戲:

C的思維方式:殭屍出現--以某速度往前走--植物投射炮彈--殭屍受傷減血--植物再投射炮彈--殭屍受傷減血--植物投射--殭屍死亡

OC的思維方式:參與整個事件的人物、事物有:

                   殭屍 :1.殭屍名字(如路障殭屍)、殭屍的道具(如路障)     2.走路、失血、死亡

                   植物:1.植物類型(如豌豆射手)   2.投射炮彈

這當中,殭屍、植物就稱為“類”(就是誰或者什麼),以殭屍為例,“名字、道具”是殭屍這個類的屬性,“走路、失血、死亡”稱為殭屍的行為方法(也就是負責做什麼)。我們可以用殭屍的這些屬性和方法,來建立對象,比如路障殭屍,就是殭屍類創造出來的一個對象,類可以無數個對象。

      名詞解釋, super:父類,self:對象本身

2.OC的三個特性:繼承、封裝多態

--繼承:在OC中,如果一個類B的部分屬性和方法與另一個類A所有的屬性和方法相同,則可以讓B繼承A,來實現給A寫一份代碼,B全全擁有。

         注意:1.繼承具有單向性,B繼承於A後,B具有A所有屬性和方法,當B具有額外的屬性和方法時,A不具有,此時,A稱為父類,B稱為子類

                  2.繼承具有先子後父的特性,如果子類重寫了父類中的某個方法,系統在執行時,會執行子類的方法。

                  3.NSObject 是所有類的父類,我們建立的任何一個類都繼承這個類,它的內部是所有我們在外部可調用的系統方法的實現方法。

 

--封裝:實現對屬性、方法等具體實現訪問的限制,對外只留出傳入資料的介面,讓寫出的代碼更具有隱秘性,就好比有一個袋子,具體實現的方法放在袋子裡,只留出口袋的開口,供外界傳入資料。同時我們可以隨時根據需求修改封裝內部的屬性、方法等,這樣也增強了項目的可維護性。

 

--多態:多態是指相同方法名的方法可以具有不同的實現功能,比如,在A類中有一個方法,方法名為“haveDinner”,實現是輸出“我愛吃麵條”,在B類中也有一個具有相同方法名的方法,實現可以改為輸出“我愛吃漢堡”。A與B之間可以是繼承也可以是關聯,或者沒有關係。系統方法也可以重寫實現。

 

從C 到 OC----從面向過程到物件導向的轉變

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.