精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Objective-C最基礎(chǔ)語(yǔ)法之Class定義

移動(dòng)開(kāi)發(fā) iOS
在Objective-C里面一個(gè)類的構(gòu)成一般由兩部分組成,一個(gè)是成員和方法聲明的頭文件(.h),一個(gè)是類方法實(shí)現(xiàn)的文件(.m)文件。

Objective-C最基礎(chǔ)語(yǔ)法之Class定義是本文要介紹的內(nèi)容,Objective-C是面向?qū)ο蟮恼Z(yǔ)言,因此的定義是基礎(chǔ)中的基礎(chǔ)。Objective-C是C的超級(jí),但是在語(yǔ)法上跟C又有一些不同,尤其是在對(duì)屬性和方法的訪問(wèn)上,有其非常特殊的語(yǔ)法。看過(guò)Objective-C的代碼都知道,里面會(huì)有很多的中括號(hào),這是Objective-C獨(dú)有的。

Objective-C里面一個(gè)的構(gòu)成一般由兩部分組成,一個(gè)是成員和方法聲明的頭文件(.h),一個(gè)是方法實(shí)現(xiàn)的文件(.m)文件。當(dāng)然你也可以把的聲明寫(xiě)在.m文件里面,但是這樣就是私有的成員,其他就不能使用了。成員的聲明是通過(guò)interface來(lái)實(shí)現(xiàn)的,懂C#的朋友應(yīng)該知道C#里面也有interface,但是Objective-C里面的interfacegen跟C#里面是完全是兩回事,Objective-C里面的interface就是用來(lái)定義一個(gè)里面有那些屬性和方法的。

一個(gè)類的方法有兩種,一種是類方法,一種是實(shí)例方法。類方法有點(diǎn)像靜態(tài)方法,它屬于一個(gè)類,而不是屬于一個(gè)類的實(shí)例。而實(shí)例方法就是屬于一個(gè)類的實(shí)例的方法。類方法在定義的時(shí)候前面用“+”號(hào)標(biāo)識(shí),實(shí)例方法前面則用“-”號(hào)標(biāo)識(shí)。比如:

  1. + (id)allObjective-C;//這是一個(gè)類方法  
  2.  (void)doSomething;//這是一個(gè)實(shí)例方法  

在調(diào)用的時(shí)候使用中括號(hào)的語(yǔ)法,比如:

  1. MyClass *class = [MyClass allObjective-C];//調(diào)用類方法,分配內(nèi)存  
  2. [class doSomething];//調(diào)用實(shí)例方法,實(shí)現(xiàn)某些功能  

首先看一個(gè)完整的類的定義和實(shí)現(xiàn)的例子。
 
.h文件的代碼為:

  1.  @interface Person:NSObject{  
  2. NSUInteger age;  
  3. NSString *name;  
  4. }  
  5. @property (nonatomic, assign)NSUInteger age;  
  6. @property (nonatomic,retain)NSString *name;  
  7.  
  8. + (Person *)person;  
  9. - (id)init;  
  10. - (void)setAge:(NSUInteger)theAge;  
  11. - (NSUInteger)age;  
  12.  
  13. - (void)vote;  
  14. @end  

.m文件的代碼:

  1.  #import "Person.h"  
  2. @interface Person ()  
  3. - (BOOL)canVote;  
  4. @end  
  5. @implementation Person  
  6. @synthesize name;  
  7. - (void)setAge:(NSUInteger)theAge{  
  8. age = theAge;  
  9. }  
  10. - (NSUInteger)age{  
  11. return age;  
  12. }  
  13. - (id)init{  
  14. if (self = [super init]){  
  15. age = 0;  
  16. name = @"";  
  17. }  
  18. return self;  
  19. }  
  20. - (BOOL)canVote{  
  21. return age >= 18;  
  22. }  
  23. - (void)vote{  
  24. //do something  
  25. }  
  26. @end  

上面是一個(gè)比較完整的定義類的例子,首先在頭文件里面定義了兩個(gè)字段,叫age和name;還有兩個(gè)屬性,也叫age和name,還有一個(gè)初始化的方法和一個(gè)實(shí)例方法。很多朋友剛接觸Objective-C的時(shí)候可能不理解,怎么字段和屬性的名字是一樣的?有什么不同么?是的,在Objective-C里面字段和屬性的名字是可以一樣的,但二者是不同的東西。一般來(lái)說(shuō)一個(gè)類的頭文件聲明的結(jié)構(gòu)是這樣的:

  1.  @interface 類名{  
  2. 字段聲明  
  3. }  
  4. 屬性聲明  
  5. 方法聲明  
  6. @end  

字段是私有的,在類外部不能使用。必須使用屬性,外部才能使用。什么是屬性?其實(shí)屬性就是對(duì)一個(gè)字段的get和set方法。在C#里面我們可以很方便地使用get和set訪問(wèn)器,但是在Objective-C里面要分別定義。比如上面的例子就是定義了一個(gè)setAge的set方法和一個(gè)叫age的get方法 。
 
 而如果我們并不需要在屬性的get或者set方法中做任何的操作,還要自己寫(xiě)這么多代碼實(shí)在是有些麻煩。Objective-C里有一種快速定義屬性的方法,就是使用 synthesize。synthesize后面跟著屬性名,編譯器就會(huì)自動(dòng)幫你添加一個(gè)屬性,而不用自己去寫(xiě)get和set方法了。那如果你要定義的屬性是只讀的或者有其他特性,該怎么辦呢?看頭文件里面定義屬性的時(shí)候,只要做一些說(shuō)明就好了。
 
 比如上面例子中的name屬性,在前面就有(nonatomic,retain)相關(guān)的說(shuō)明。這些說(shuō)明是跟內(nèi)存管理和訪問(wèn)權(quán)限有關(guān)的,比如添加了retain說(shuō)明,就類似于name = [value retail],也就是說(shuō)在給這個(gè)屬性賦值的時(shí)候就會(huì)把retain count增加一。還有其他的說(shuō)明比如readonly等,不一一列舉。一般來(lái)說(shuō),給基本類型比如NSInteger的屬性添加的說(shuō)明有nonatomic, assign,而給引用類型的屬性添加唉的有nonatomic,retain。

除了定義字段和屬性外,我們還需要定義方法。定義方法比較簡(jiǎn)單,只要區(qū)分好類方法和實(shí)例方法就好了。還有一點(diǎn)需要注意的是,在Objective-C中一個(gè)方法的名稱是包含冒號(hào)的,比如age屬性的set方法的完整的名稱是setAge:,而不是setAge。Objective-C里方法的定義比較詭異,它允許將一個(gè)方法的名稱和參數(shù)的名稱混合在一起。比如在C#中我定義一個(gè)方法:     

  1. void SetPosition(int x,int y)  
  2. {}   
  3.    在Objective-C中就會(huì)變成這樣:  
  4.  - (void)setPositionX:(NSInteger) x Y:(NSInteger)y{  
  5. }  

這個(gè)時(shí)候完整的方法名是“setPositionX:Y:”,方法名和參數(shù)名是混合在一起的,各參數(shù)之間用空格分開(kāi),參數(shù)名后面緊跟著冒號(hào),并用小括號(hào)擴(kuò)起參數(shù)的類型(別忘了引用類型要添加*以表示指針),最后跟著形參的名字。

還有一點(diǎn)要注意的是,形參的名字不要和屬性或字段的名字重復(fù)了,否則會(huì)有編譯警告,說(shuō)局部變量覆蓋了全局的變量。剛接觸Objective-C的時(shí)候?qū)@個(gè)可能會(huì)比較不習(xí)慣,不過(guò)到后來(lái)感覺(jué)還蠻舒服的。
  
.m文件里面的代碼是方法的具體實(shí)現(xiàn),這是對(duì)外不可見(jiàn)的。一個(gè)典型的m文件的內(nèi)容為:
  
#import "頭文件.h"//系統(tǒng)自帶的請(qǐng)用<>而不是雙引號(hào),不解釋

  1. @implementation 類名{  
  2. //方法的具體實(shí)現(xiàn)  
  3. }  

方法的實(shí)現(xiàn)就不需要過(guò)多的解釋了。在上面的例子當(dāng)中還額外多了一些東西

  1. @interface Person ()   
  2.      - (BOOL)canVote;   
  3. @end  

這又是干什么的了?在Objective-C中這叫“擴(kuò)展”。所謂的擴(kuò)展,其實(shí)就是對(duì)一個(gè)類的方法或?qū)傩赃M(jìn)行擴(kuò)展。原來(lái)的類中沒(méi)有的方法或?qū)傩裕覀兛梢院芊奖愕眠M(jìn)行擴(kuò)展。但是一定要注意,在擴(kuò)展中只能擴(kuò)展屬性和方法,如果你想添加字段,那就會(huì)編譯錯(cuò)誤。一個(gè)典型的擴(kuò)展的寫(xiě)法跟interface比較類戲,形如:

  1. @interfae 類名(可以添加一些說(shuō)明性的文字,也可以留空)  
  2. //定義屬性和方法,但是不能添加字段,因此那一對(duì)大括號(hào)不能有  
  3. @end  

擴(kuò)展可以是公開(kāi)的,也可以是私有的,就看你在哪里定義。這里我定義在m文件里面,自然就是私有的了,如果定義在頭文件里面,那么就是公有的。

interface可以分開(kāi)多出定義,同樣的implementation一個(gè)類也可以寫(xiě)多次,寫(xiě)多次的好處就是調(diào)理比較清晰,提高代碼的可讀性。比如可以把功能相關(guān)的一些代碼寫(xiě)在一個(gè)

  1. @ implementation@end中 

然后另外一些代碼寫(xiě)在別的地方。

Objective-C中定義一個(gè)類的最基礎(chǔ)的語(yǔ)法大概就是這么多。

小結(jié):Objective-C最基礎(chǔ)語(yǔ)法之Class定義的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-06 11:19:45

Objective-C

2011-08-17 11:15:22

Objective-C語(yǔ)法

2010-11-04 16:32:00

Objective-C

2011-05-11 13:54:08

Objective-C

2011-08-02 13:16:36

Objective-C 語(yǔ)法 函數(shù)

2014-04-30 10:16:04

Objective-CiOS語(yǔ)法

2015-10-08 10:01:10

Objective-CLayout

2011-07-18 16:36:51

Objective-C XCode

2011-08-04 14:58:37

Objective-C Cocoa NSString

2011-05-11 15:45:50

內(nèi)存管理Objective-C

2011-07-06 14:12:14

Objective-C

2011-04-08 10:51:17

Objective-CiOS

2011-08-18 15:19:28

XcodeObjective-C語(yǔ)法

2013-07-24 19:19:03

Objective-CiOS開(kāi)發(fā)動(dòng)態(tài)特性之protoc

2013-05-02 10:51:17

iOS開(kāi)發(fā)Objective-C@property

2011-08-01 17:11:43

Objective-C 函數(shù)

2015-11-02 10:13:41

iOSObjective-C語(yǔ)法

2011-08-03 16:22:05

Objective-C CodeBlocks

2011-08-10 18:07:29

Objective-C反射

2011-05-11 15:58:34

Objective-C
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

中文字幕亚洲字幕| 亚洲精品自拍| 2024国产精品| 日韩av色在线| 一级在线观看视频| 在线观看爽视频| 久久在线观看免费| 国产视频福利一区| 在线免费观看毛片| 国产厕拍一区| 欧美剧在线免费观看网站| 轻点好疼好大好爽视频| 欧美老女人性开放| 日韩黄色一级片| 欧美日韩高清区| 久久性爱视频网站| 免费在线小视频| 国产精品成人在线观看| 97久久人人超碰caoprom欧美| 国产精品黄色网| 精品久久影院| 亚洲精品福利在线观看| 激情文学亚洲色图| 韩日成人影院| 亚洲国产裸拍裸体视频在线观看乱了 | 一区二区三区四区亚洲| 日本一区二区三区精品视频| www日本高清| 久久天堂精品| 久久免费视频观看| 亚洲女同二女同志奶水| 丝袜美腿综合| 7777精品伊人久久久大香线蕉 | 精品久久久久久久久久久久包黑料| 污片在线免费看| 亚洲精品中文字幕| 一区二区三区四区av| 奇米精品在线| 四虎精品成人免费网站| 国产精品白丝jk黑袜喷水| 国产精品中文在线| www.色国产| 亚洲调教视频在线观看| 伦理中文字幕亚洲| 神马久久精品综合| 天天色综合色| 亚洲乱码av中文一区二区| 亚洲成a人片在线www| 韩国三级成人在线| 欧美一区二区三区视频免费| 午夜国产一区二区三区| 国产成人精品一区二三区在线观看| 精品国产成人在线| 久久久亚洲精品无码| 三级资源在线| 国产精品灌醉下药二区| 日韩精品欧美在线| 国产在线视频网站| 久久精品亚洲一区二区三区浴池 | 51ⅴ精品国产91久久久久久| 国产在线视频第一页| 欧美私人啪啪vps| 欧美高清无遮挡| 久久综合成人网| 亚洲免费成人| 欧美在线一级va免费观看| 欧美色图亚洲天堂| 亚洲伦伦在线| 韩国精品久久久999| 欧美精品色哟哟| 亚洲视屏一区| 久久久久久国产三级电影| 国产午夜视频在线播放| 一本久久综合| 国产精品福利观看| 少妇一级淫片免费放中国 | 777av视频| 国产高潮在线| 在线一区二区三区四区五区| 狠狠热免费视频| 深夜视频一区二区| 欧美一级黄色片| 国产激情视频网站| 国产一区二区三区网| 中国china体内裑精亚洲片| 欧美一级特黄高清视频| 激情视频一区二区三区| 青青a在线精品免费观看| 在线观看av大片| 国产精品一区二区不卡| 亚洲一区二区三区xxx视频| 手机看片国产1024| 国产丝袜美腿一区二区三区| 日韩色妇久久av| 婷婷在线免费视频| 久久久久久97三级| 一区二区三区av在线| 久草免费在线色站| 在线视频你懂得一区二区三区| 超碰在线97免费| 4438全国亚洲精品观看视频| 亚洲第一免费播放区| 大胸美女被爆操| 欧美精品导航| 国产精品777| 国产99久一区二区三区a片| 91欧美激情一区二区三区成人| 亚洲国产一区二区三区在线播| 日本孕妇大胆孕交无码| 色综合天天性综合| 欧美性猛交乱大交| 亚洲国产合集| 欧美精品18videosex性欧美| 超碰在线97观看| 国产精品18久久久久久久网站| 欧日韩一区二区三区| 在线免费观看黄色| 欧美丝袜第一区| 香蕉视频在线观看黄| 国产影视一区| 午夜精品一区二区三区视频免费看| 国产天堂第一区| 91在线视频免费91| 三级在线免费观看| 日韩三级一区| 一区二区三区视频免费| 日韩成年人视频| 蜜桃视频在线一区| 欧美日韩在线精品一区二区三区| h片在线免费| 欧美日韩一区二区三区在线| 久久久无码人妻精品一区| 欧美日韩一区二区国产| 成人免费视频在线观看超级碰| 欧洲伦理片一区 二区 三区| 亚洲视频狠狠干| 91国产精品视频在线观看| 国产欧美啪啪| 色综合天天狠天天透天天伊人| 日韩欧美国产另类| 久久久久久久久蜜桃| 久久精品视频16| 黄色网一区二区| 欧美国产日产韩国视频| 精品人妻少妇嫩草av无码专区| 最新国产成人在线观看| 亚洲人视频在线| 国产精品一区二区99| 日韩免费中文字幕| 亚洲第一视频在线| 亚洲综合网站在线观看| 美女被艹视频网站| 久久精品高清| 成人国产亚洲精品a区天堂华泰| 尤物网在线观看| 欧美剧情片在线观看| 欧美日韩在线观看成人| 大白屁股一区二区视频| 国内精品在线观看视频| 欧美变态网站| 国产aaa精品| 第九色区av在线| 欧美日韩国产a| 久久久久久久毛片| 麻豆极品一区二区三区| 亚洲日本无吗高清不卡| 综合久久av| 欧美成在线观看| 少妇高潮久久久| 日韩欧美国产一区二区| 一边摸一边做爽的视频17国产 | 懂色av一区二区三区免费观看| www.日本在线视频| 亚洲精品动态| 国产精品高潮呻吟久久av无限 | 中文字幕一区二区三区蜜月| 伦伦影院午夜理论片| 欧美日韩视频| 免费看成人午夜电影| 成人精品高清在线视频| 萌白酱国产一区二区| 日韩一级片免费看| 91久久奴性调教| 成人做爰69片免网站| 日韩国产在线一| 亚洲资源视频| 国产成人福利av| 国产精品劲爆视频| av观看在线| 亚洲欧美日本另类| 国产一区二区三区中文字幕| 亚洲成人免费看| 超碰人人人人人人人| 国产成人精品免费一区二区| 狠狠97人人婷婷五月| 成人影视亚洲图片在线| 国产精品一区而去| 日韩免费va| 欧美激情综合色| av在线电影观看| 亚洲第一在线视频| 天天射天天干天天| 亚洲高清久久久| 在线不卡av电影| 成人免费精品视频| 99热自拍偷拍| 欧洲毛片在线视频免费观看| 国产精品theporn88| 51一区二区三区| 欧美成aaa人片免费看| 偷拍精品一区二区三区| 在线电影国产精品| 精品亚洲永久免费| 综合激情成人伊人| 国产手机在线观看| av亚洲精华国产精华| 天天干天天操天天做| 国产情侣一区| 99久久久精品视频| 1024精品久久久久久久久| 久久亚洲精品欧美| 亚洲a成人v| 国内自拍欧美激情| 丝袜综合欧美| 播播国产欧美激情| 成人午夜在线观看视频| 亚洲精品视频播放| 日本精品一二区| 欧美v国产在线一区二区三区| 一区二区三区在线免费观看视频| 一本色道久久综合亚洲91| 国产激情无码一区二区三区| 欧美激情一二三区| xxxx日本黄色| 久久久久久99久久久精品网站| 香港三日本8a三级少妇三级99| 国产成人av一区二区三区在线观看| 91香蕉视频导航| 国产精品美女久久久| 成人黄色av片| 亚洲每日在线| 黄色免费高清视频| 亚洲国产精品久久久久蝴蝶传媒| 色播亚洲婷婷| 欧美一级精品片在线看| 日本成人三级电影网站| 色综合中文网| 视频一区亚洲| 国产精品网在线观看| 成人3d动漫一区二区三区91| 综合中文字幕| 亚洲tv在线观看| 欧美黑人xx片| 羞羞色国产精品| 午夜免费福利在线观看| 亚洲毛片一区二区| 男人久久精品| 亚洲精品久久久久久久久久久| 日本毛片在线观看| 亚洲欧美日本另类| 日本在线播放| www.美女亚洲精品| 99热国产在线| 久久精品xxxxx| 337p亚洲精品色噜噜狠狠| 亚洲特级黄色片| 在线观看亚洲专区| 一道本无吗一区| 91麻豆精品国产91久久久使用方法| 国产欧美久久久精品免费| 日韩一区二区三区观看| 国产香蕉在线观看| 亚洲欧美国产一区二区三区| 亚洲 欧美 自拍偷拍| 一区三区二区视频| 91caoporn在线| 美日韩在线视频| 欧美性猛片xxxxx免费中国| 欧美与黑人午夜性猛交久久久| 午夜久久中文| 国产精品永久免费观看| 国产一区二区av在线| 国产精品亚洲综合| 成人同人动漫免费观看| 少妇熟女一区二区| 国模一区二区三区| 男女av免费观看| 午夜亚洲性色福利视频| 激情黄色小视频| 国产成人亚洲综合a∨婷婷| 国产呦小j女精品视频| 一区二区中文字幕在线| 国产精品久久久久久99| 欧美三电影在线| 欧美一区二区公司| 原创国产精品91| 国产丝袜在线| 欧美中文字幕在线视频| 国产精品va视频| 欧美一区二区视频在线| 欧美成人首页| 男人搞女人网站| 成人动漫精品一区二区| 少妇光屁股影院| 亚洲最大成人网4388xx| 狠狠躁夜夜躁人人爽天天高潮| 欧美剧情片在线观看| 欧美成熟毛茸茸| 欧美黄色片免费观看| 日韩av黄色| 国产精品视频免费一区| 久久久久久久久久久久久久久久久久 | 精品欧美午夜寂寞影院| 在线免费观看成人| 久久人人精品| 一起草在线视频| 亚洲另类在线视频| 在线观看黄色国产| 亚洲片av在线| 日韩av影片| 国产超碰91| 欧美一区综合| 久久6免费视频| 国产欧美精品一区aⅴ影院| 久久久久无码精品国产| 欧美视频一区二区三区四区| 欧美黄色小说| 51久久精品夜色国产麻豆| 欧美亚洲综合视频| 国产精品一区视频网站| 亚洲深深色噜噜狠狠爱网站| 国产精品拍拍拍| 久久九九99视频| 欧美a视频在线观看| 亚洲成人久久电影| 人人澡人人添人人爽一区二区| 成人av在线网址| 欧美熟乱15p| 亚欧美在线观看| 欧美高清在线视频| 亚洲成人第一网站| 日韩精品黄色网| 亚洲国产成人二区| 欧美亚洲精品日韩| 欧美精品三区| 色哟哟在线观看视频| 亚洲欧美日本韩国| 99热这里只有精品在线观看| 久久国产精品久久久| 国产精品麻豆| 亚洲精品免费在线看| 蜜桃av一区二区三区电影| 亚洲色图日韩精品| 91精品久久久久久蜜臀| 亚洲av成人无码久久精品老人| 2019中文字幕免费视频| 日韩精品欧美大片| 成人精品小视频| 国产精品青草久久| 国产免费无遮挡| 久久69精品久久久久久久电影好 | 国产精品乱看| 性高潮久久久久久| 亚洲高清免费一级二级三级| 色综合888| 911国产网站尤物在线观看| 亚州精品视频| 欧美一级特黄a| 亚洲激情图片小说视频| 日本黄色三级视频| 国产成人涩涩涩视频在线观看| 成人嘿咻视频免费看| 久久久久免费精品| 中文字幕亚洲电影| 蜜桃视频污在线观看| 欧美精品久久久久a| 欧美调教网站| 妺妺窝人体色www在线观看| 中文字幕乱码日本亚洲一区二区| 国产女人爽到高潮a毛片| 久久久久久久久久久人体| 精品一区91| 黄网站欧美内射| 国产精品丝袜一区| 精品人妻久久久久一区二区三区| 97超视频免费观看| 99久久99热这里只有精品 | 艳妇乳肉豪妇荡乳av无码福利| 久久久久99精品久久久久| 久久1电影院| 手机免费av片| 欧美日韩激情视频8区| 99免在线观看免费视频高清| 国产精品日韩欧美一区二区| 免费在线观看精品| 三级影片在线看| 日韩精品免费在线视频观看| 久久亚洲精品人成综合网| 国产无限制自拍| 国产精品视频你懂的|