Objective-C語(yǔ)法基礎(chǔ)之類(lèi)聲明與定義
Objective-C語(yǔ)法基礎(chǔ)之類(lèi)的聲明與定義是本文要介紹的內(nèi)容,Objective-C 是面向?qū)ο蟮恼Z(yǔ)言,Objective-C 是C 的超級(jí),在Objective-C里面一個(gè)類(lèi)的構(gòu)成一般由兩部分組成,一個(gè)是成員和方法聲明的頭文件(.h),一個(gè)是類(lèi)方法實(shí)現(xiàn)的文件(.m)文件,類(lèi)成員的聲明通過(guò) interface 來(lái)實(shí)現(xiàn)。objective-c 語(yǔ)法基礎(chǔ),objective-c 類(lèi)的定義,objective-c 類(lèi)的聲明。
Objective-C是面向?qū)ο蟮恼Z(yǔ)言,Objective-C是C的超級(jí),但是在語(yǔ)法上跟C又有一些不同,尤其是在對(duì)屬性和方法的訪(fǎng)問(wèn)上,有其非常特殊的語(yǔ)法,里面會(huì)有很多的中括號(hào),這是Objective-C獨(dú)有的。
在Objective-C里面一個(gè)類(lèi)的構(gòu)成一般由兩部分組成,一個(gè)是成員和方法聲明的頭文件(.h),一個(gè)是類(lèi)方法實(shí)現(xiàn)的文件(.m)文件。當(dāng)然你也可以把類(lèi)的聲明寫(xiě)在.m文件里面,但是這樣就是私有的成員,其他類(lèi)就不能使用了。
類(lèi)成員的聲明是通過(guò)interface來(lái)實(shí)現(xiàn)的,懂C#的朋友應(yīng)該知道C#里面也有interface,但是Objective-C里面的interfacegen跟C#里面是完全是兩回事,Objective-C里面的interface就是用來(lái)定義一個(gè)類(lèi)里面有那些屬性和方法的。
一個(gè)類(lèi)的方法有兩種,一種是類(lèi)方法,一種是實(shí)例方法。類(lèi)方法有點(diǎn)像靜態(tài)方法,它屬于一個(gè)類(lèi),而不是屬于一個(gè)類(lèi)的實(shí)例。而實(shí)例方法就是屬于一個(gè)類(lèi)的實(shí)例的方法。類(lèi)方法在定義的時(shí)候前面用“+”號(hào)標(biāo)識(shí),實(shí)例方法前面則用“-”號(hào)標(biāo)識(shí)。比如:
以下為引用內(nèi)容:
- + (id)allObjective-C;
- //這是一個(gè)類(lèi)方法
- (void)doSomething;
- //這是一個(gè)實(shí)例方法在調(diào)用的時(shí)候使用中括號(hào)的語(yǔ)法
比如:
以下為引用內(nèi)容:
- MyClass *class = [MyClass allObjective-C];
- //調(diào)用類(lèi)方法,分配內(nèi)存[class doSomething];
- //調(diào)用實(shí)例方法,實(shí)現(xiàn)某些功能首先看一個(gè)完整的類(lèi)的定義和實(shí)現(xiàn)的例子。
.h文件的代碼為:
以下為引用內(nèi)容:
- @interface Person:NSObject{NSUInteger age;
- NSString *name;
- }
- @property (nonatomic, assign)NSUInteger age;@property (nonatomic,retain)NSString *name;
- + (Person *)person;
- - (id)init;
- - (void)setAge:(NSUInteger)theAge;
- - (NSUInteger)age;
- - (void)vote;
- @end
小結(jié):Objective-C語(yǔ)法基礎(chǔ)之類(lèi)聲明與定義的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!