『iOS開發』「OC」02 - 類和對象

來源:互聯網
上載者:User

標籤:

一、物件導向

  OC語言是物件導向的,c語言是面向過程的,物件導向和面向過程只是解決問題的兩種思考方式,面向過程關注的是解決問題涉及的步驟,物件導向關注的是設計能夠實現解決問題所需功能的類。

  術語:OO物件導向、OOP物件導向編程

二、類和對象

(一)關於類

  類的設計只關注三個東西:類名、屬性和方法

  注意:一般名詞都是類,擁有相同屬性和行為的對象都可以抽象為一個類,類名是標識符的一種,需要符合規範,通常類名的第一個字母大寫,且不能有底線,如果有多個單詞則使用駝峰標識。在對方法進行類的劃分中,一般採取的做法是誰最熟悉這個方法那麼就把這個方法劃分給誰。在OC中,對象對方法的調用稱為訊息機制,即向既定的對象發送了什麼訊息。

(二)簡單記憶體分析

  類建立對象,每個對象在記憶體中都佔據一定的儲存空間,每個對象都有一份屬於自己的單獨的成員變數,所有的對象公用類的成員方法,方法在整個記憶體中只有一份,類本身在記憶體中佔據一份儲存空間,類的方法儲存於此。

  每個對象內部都預設有一個isa指標指向這個對象所使用的類。

  [p eat];表示給p所指向的對象發送一條eat訊息,調用對象的eat方法,此時對象會順著內部的isa指標找到儲存於類中的方法,執行。

  isa是對象中的隱藏指標,指向建立這個對象的類。

(三)類的聲明和實現

  1)類的聲明:聲明一個Car類,它擁有wheels和speed兩個屬性,一個run方法

     

  2)類的實現:

     

  3)類的調用:首先在主函數建立了p和p2兩個Car類型的對象,把p對象的wheels和speed屬性分別設定為5和250,p和p2分別調用run方法,把跑的wheels和speed屬性設定為4和300。

    

  輸出結果為:

    

  練習:設計一個Person類

    

  輸出結果:

    

(四)常見錯誤

   1.類的聲明和實現不能嵌套

   2.方法的實現必須放在@implementation中,不能放在@interface中。

   3.方法聲明不能放在大括弧{}裡。

   4. 聲明新類的時候不能和已有的類嵌套。

   5.不允許在@interface大括弧裡給成員變數賦值(初始化),也不能隨便將成員變數當作C語言中的變數來使用,如用static修飾。

   6.類的聲明必須放在main函數前面。

三、方法與函數

  方法與函數的區別:

  (1)對象方法的聲明必須寫在@interface和@end之間,對象方法的實現必須寫在@implementation和@end之間

  (2)對象方法都以-號開頭,類方法都以+號開頭

  (3)對象方法只能由對象來調用,類方法只能由類來調用,不能當做函數一樣調用

  (4)函數能寫在檔案的任意位置(@interface和@end之間除外),函數歸檔案所有

  (5)對象方法歸類\對象所有

  (6)函數調用不依賴與對象

  (7)函數內部不能直接通過成員變數名訪問對象的成員變數

四、類和方法的設計

  工具類:基本沒有任何的成員變數,裡面的方法基本都是類方法。

  注意:在對象方法中可以調用類方法。

  需求:設計一個工具類:一個計算機類,要求(1)返回π,(2)計算兩個整數的和,(3)計算某個整數的平方。

  

  輸出結果:

    

『iOS開發』「OC」02 - 類和對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.