您好,登錄后才能下訂單哦!
面向?qū)ο蟮模∣OP)的基礎知識
類(class):表示一組對象數(shù)據(jù)的結(jié)構(gòu)體,對象通類來得到自身。類名首字母大寫。
對象(objcet):是一種包含值和指向其類的隱藏指針的結(jié)構(gòu)體。運行中的程序中通常會有n個對象,首字母不用大寫。
實例(instance):是對對象的另一種稱呼。
消息(message):是對象執(zhí)行的操作,用于通知對象去做什么。對象接收到消息后,將查詢相應的類,來執(zhí)行正確的代碼運行程序。
方法(method):j是為響應消息而運行的代碼,這個以后在oop中會很常用。根據(jù)類的對象或消息來調(diào)用不用的方法。
方法調(diào)度(method dispatcher):是oc中的一種機制,用于推測執(zhí)行什么方法以響應某個特寫的消息。
接口(interface):以類為對象提供的特性描述。這種以后是常用,涉及多個方面(繼承,coco代碼的類描述等)
實現(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
我們看到第一行的#import <Foundation/Foundation.h>,這里是引入文件,和C#中的命名空間是一個樣子的,筆者專業(yè)是C#,這里就和C#進行對比;
@interface HuiTu : NSObject:接口,繼承哪個基類,這里我們看到是nsobject,初學者就不要去手動更改。
{....}這對花括號中的代碼,就是類的成員變量,這里不能是私有的,如果要寫成私有的,直接在.m文件中寫,這里只能是公共和受保護的(未驗證)
方法要寫到{}花括號的外面;我們注意到,方法的開頭有個-和+,這兩個分別代表類兩種不同的意思,其中“-”代碼方法聲明,調(diào)用時要實例化類才可以;而“+”代表類的方法,和c#中的靜態(tài)方法(static)一樣不需要實例化類,直接就可以調(diào)用;
(void)這里代表希望這個方法返回的值,這里是不返回值,如果要返回值就可以寫(NSString/int)等根據(jù)自己的需要來寫上。
今天就到這里,明天繼續(xù).oc中的類實例化和c#中的還是有一定的區(qū)別,初接觸,有點蒙圈。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。