溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oc的oop介紹,以及類的基本介紹

發(fā)布時間:2020-07-16 18:10:30 來源:網(wǎng)絡 閱讀:286 作者:喝咖啡的狗 欄目:開發(fā)技術(shù)

面向?qū)ο蟮模∣OP)的基礎知識

  1. 類(class):表示一組對象數(shù)據(jù)的結(jié)構(gòu)體,對象通類來得到自身。類名首字母大寫。

  2. 對象(objcet):是一種包含值和指向其類的隱藏指針的結(jié)構(gòu)體。運行中的程序中通常會有n個對象,首字母不用大寫。

  3. 實例(instance):是對對象的另一種稱呼。

  4. 消息(message):是對象執(zhí)行的操作,用于通知對象去做什么。對象接收到消息后,將查詢相應的類,來執(zhí)行正確的代碼運行程序。

  5. 方法(method):j是為響應消息而運行的代碼,這個以后在oop中會很常用。根據(jù)類的對象或消息來調(diào)用不用的方法。

  6. 方法調(diào)度(method dispatcher):是oc中的一種機制,用于推測執(zhí)行什么方法以響應某個特寫的消息。

  7. 接口(interface):以類為對象提供的特性描述。這種以后是常用,涉及多個方面(繼承,coco代碼的類描述等)

  8. 實現(xiàn)(implementation):有了類,有了接口,有了方法,就需要實現(xiàn)。

說了那么多,我們來看一下oc中的oop:通下下面一個類來分析一下:

#import <Foundation/Foundation.h>
//繪圖類,用來分析oop中
@interface HuiTu : NSObject
{
    //參數(shù)或變量要寫在{}中,這里是公有的,如果要寫私有的就不要寫在描述文件中,直接寫在.m的文件中
    
NSString *_yanse;//coco代碼,表示指針類型
NSString *_xingzhuang;
}
//這里寫方法
//得到顏色
-(void) GetYanse:(NSString*) yanse;
//得到形狀
-(void) GetXingZhuang:(NSString*) xingzhuang;
//繪制
-(void)HuiZhi;
@end
  1. 我們看到第一行的#import <Foundation/Foundation.h>,這里是引入文件,和C#中的命名空間是一個樣子的,筆者專業(yè)是C#,這里就和C#進行對比;

  2. @interface HuiTu : NSObject:接口,繼承哪個基類,這里我們看到是nsobject,初學者就不要去手動更改。

  3. {....}這對花括號中的代碼,就是類的成員變量,這里不能是私有的,如果要寫成私有的,直接在.m文件中寫,這里只能是公共和受保護的(未驗證)

  4. 方法要寫到{}花括號的外面;我們注意到,方法的開頭有個-和+,這兩個分別代表類兩種不同的意思,其中“-”代碼方法聲明,調(diào)用時要實例化類才可以;而“+”代表類的方法,和c#中的靜態(tài)方法(static)一樣不需要實例化類,直接就可以調(diào)用;

  5. (void)這里代表希望這個方法返回的值,這里是不返回值,如果要返回值就可以寫(NSString/int)等根據(jù)自己的需要來寫上。

  6. 今天就到這里,明天繼續(xù).oc中的類實例化和c#中的還是有一定的區(qū)別,初接觸,有點蒙圈。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI