精品欧美一区二区三区在线观看 _久久久久国色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)

清纯唯美亚洲综合| 欧美一区二区在线免费观看| 另类视频在线观看+1080p| 亚洲影院在线播放| 国产精品久久久久久影院8一贰佰 国产精品久久久久久麻豆一区软件 | 久久天天躁夜夜躁狠狠躁2022| 波多野结衣免费观看| 美女搞黄视频在线观看| 国产精品区一区二区三| 成人在线视频网址| 日韩黄色片网站| 欧美三级特黄| 一道本无吗dⅴd在线播放一区| 99国产精品久久久久久| 欧美调教sm| 亚洲久本草在线中文字幕| 韩日午夜在线资源一区二区| 中文字幕一区二区三区四区视频 | xxxx日韩| 欧美午夜寂寞影院| 国产九色porny| 免费av毛片在线看| 久久久久久久久久久久久夜| 91在线观看免费高清完整版在线观看 | 亚洲精品国产a| 色一情一区二区三区四区 | 国产第100页| 欧美电影《轻佻寡妇》| 日韩av在线精品| 青青草精品在线| 国产69精品久久久久按摩| 亚洲6080在线| 黄频视频在线观看| 精品欧美不卡一区二区在线观看 | 国产伦精品一区二区三区妓女| 亚洲资源在线| 欧美三级电影在线观看| 亚洲人成色77777| 51av在线| 亚洲国产精品天堂| 一二三四中文字幕| 免费黄网在线观看| 国产精品午夜电影| 日韩精品极品视频在线观看免费| 视频一区二区在线播放| 成人禁用看黄a在线| 999视频在线免费观看| 一炮成瘾1v1高h| 日韩精品高清不卡| 日本一本a高清免费不卡| 97免费在线观看视频| 精品成人国产| 久久久久久综合网天天| 久久亚洲成人av| 欧美网站在线| 欧美激情亚洲一区| 国产一级理论片| 好吊视频一区二区三区四区| 久久成年人免费电影| 精品国产视频一区二区三区| 99久久99热这里只有精品| 色av中文字幕一区| 自拍偷拍第9页| 97国产精品| 理论片在线不卡免费观看| 午夜少妇久久久久久久久| 女同性一区二区三区人了人一 | 美女视频一区二区| 国产精品视频一| 中文字幕av久久爽| 久久国产日韩欧美精品| 亚洲一区二区三区视频| 国产人妖在线播放| 国产91精品欧美| 国产一区免费在线| 男人天堂综合| 欧美国产一区二区在线观看| 在线视频不卡一区二区| 午夜小视频在线观看| 亚洲综合免费观看高清完整版| 搞av.com| 成人va天堂| 欧美日韩和欧美的一区二区| 久久久久无码精品| 久久精品亚洲成在人线av网址| 亚洲欧美成人在线| 五月天免费网站| 最新欧美人z0oozo0| 性欧美长视频免费观看不卡| 国产嫩bbwbbw高潮| 久久av老司机精品网站导航| 国产成人免费观看| 蜜桃视频在线观看视频| 亚洲丝袜精品丝袜在线| 丰满少妇久久久| 播放一区二区| 欧美一卡二卡三卡| 丰满少妇一区二区| 伊人久久大香线蕉综合四虎小说| 2019中文字幕免费视频| 国产精品亚洲lv粉色| 99久久久久久| 在线综合视频网站| 中文字幕人成乱码在线观看| 欧美理论电影在线| 少妇精品一区二区三区| 91精品秘密在线观看| 欧美在线视频免费播放| 国产精品福利电影| 久久综合色鬼综合色| 2021狠狠干| 精品国模一区二区三区| 日韩欧美高清在线| 国产破处视频在线观看| 国产视频一区三区| 亚洲综合在线播放| av资源网在线观看| 狠狠综合久久av一区二区小说| 日韩 国产 一区| 九色精品国产蝌蚪| 久久人人爽人人| 国产普通话bbwbbwbbw| 国产亚洲欧洲一区高清在线观看| 国产性生活免费视频| 视频欧美精品| 亚洲丝袜一区在线| 99免费在线观看| 国产毛片精品国产一区二区三区| 日韩伦理一区二区三区av在线| heyzo在线欧美播放| 日韩欧美国产综合| 91n在线视频| 奇米色一区二区三区四区| 精品欧美一区二区精品久久| 天堂av在线电影| 欧美夫妻性生活| 妖精视频在线观看免费 | 69久久夜色精品国产69| 不卡视频免费在线观看| 日韩一区在线看| 日本超碰在线观看| 日韩精品dvd| 国产成人久久久精品一区| 亚洲AV成人无码一二三区在线| 一卡二卡三卡日韩欧美| 成人在线短视频| 久久久久久美女精品| 成人福利在线视频| 超碰在线无需免费| 日韩欧美综合一区| 九九热精品免费视频| 国产高清成人在线| 久久综合久久久久| 成人中文字幕视频| 午夜精品久久久久久99热| 殴美一级特黄aaaaaa| 午夜电影网亚洲视频| 亚洲天堂2024| 午夜影院日韩| 欧美午夜欧美| 不卡亚洲精品| 久久亚洲私人国产精品va| 国产乱人乱偷精品视频a人人澡| 中文字幕中文乱码欧美一区二区| 日韩av卡一卡二| 伊人成综合网| 国产麻豆一区二区三区在线观看| 888av在线视频| 精品中文视频在线| 久久国产香蕉视频| 1024成人网| 精品人妻人人做人人爽夜夜爽| 狠狠干成人综合网| 久久av一区二区| 日韩免费va| 久久精品一区中文字幕| 亚洲av无码乱码国产精品| 亚洲aⅴ怡春院| 成人www视频在线观看| av官网在线观看| 一区二区三区四区av| 欧美无人区码suv| 久久久久国产精品一区三寸| 亚洲精品一区二区三区av| 精品视频成人| 欧美在线日韩在线| 日本在线免费网| 精品久久人人做人人爰| 欧美成人一区二区三区四区| 国产精品二区一区二区aⅴ污介绍| 国产精品探花在线播放| 国产精品综合| 在线观看一区二区三区三州 | 亚洲在线电影| 亚洲一卡二卡三卡| 都市激情亚洲欧美| 国产精品一区专区欧美日韩| 日韩av毛片| 一区二区三区美女xx视频| 亚洲国产精品视频在线| 色哟哟一区二区三区| 99精品久久久久| 日本一区二区视频在线| 亚洲乱妇老熟女爽到高潮的片| 久久久精品午夜少妇| www.日本三级| 91欧美在线| 精品蜜桃传媒| 亚洲电影一区| 国产精品视频一| 中文字幕乱码在线播放| 欧美大片欧美激情性色a∨久久| 国产在线你懂得| 精品美女被调教视频大全网站| 最近日韩免费视频| 天涯成人国产亚洲精品一区av| 国产精品国产三级国产传播| 91丨九色丨尤物| 免费黄色av网址| 激情综合网av| 浓精h攵女乱爱av| 国产亚洲综合精品| 加勒比成人在线| 欧美激情视频一区二区三区免费| 午夜欧美性电影| 亚洲人和日本人hd| 国产日韩欧美综合精品| 久久久久久久久久久久电影| 国产精品夜间视频香蕉| 美女100%一区| 国产91|九色| av成人福利| 欧美韩日一区二区| 污污的网站在线免费观看| 日韩一区av在线| 91社区在线高清| 永久555www成人免费| 九九在线视频| 亚洲人成电影在线观看天堂色| 天堂在线免费av| 亚洲精品美女在线观看| 三级在线观看网站| 亚洲福利视频在线| 蜜臀av在线观看| 欧美第一区第二区| 亚洲女同志亚洲女同女播放| 日韩欧美一二区| 午夜精品久久久久久久爽| 日韩视频在线永久播放| 国产成人精品亚洲精品色欲| 91精品欧美综合在线观看最新 | 九九热只有精品| 一区二区三区鲁丝不卡| 青青草在线观看视频| 亚洲一级不卡视频| 日韩aaaaaa| 欧美日韩中文字幕在线视频| 国产婷婷色一区二区在线观看 | 欧美放荡办公室videos4k| a级在线观看| 久久久久久久久久婷婷| 国产盗摄——sm在线视频| 91精品国产91| 成人做爰视频www网站小优视频| 国产精品v片在线观看不卡| 国产精品久久亚洲不卡| 国产精品亚洲欧美导航| 清纯唯美激情亚洲| 国产精品亚洲综合| 精品一区在线| 一区二区三区四区在线视频| 亚洲v在线看| av在线观看地址| 欧美亚洲一区二区三区| 国产免费又粗又猛又爽| 国产一区二区三区免费观看| 在线播放第一页| 久久综合九色综合欧美98| 91av在线免费| 国产精品视频一二三区| 精品爆乳一区二区三区无码av| 午夜久久久久久电影| 久久久久久久久久成人| 欧美日本一区二区三区四区| 国产高清视频免费观看| 日韩精品在线影院| 毛片网站在线免费观看| 久久免费在线观看| 99久久精品一区二区成人| 亚洲一区二区久久久久久久| 噜噜噜天天躁狠狠躁夜夜精品| 神马一区二区影院| 国内一区二区三区| 搡女人真爽免费午夜网站| 国产宾馆实践打屁股91| 熟女少妇一区二区三区| 亚洲乱码日产精品bd| 亚洲成人第一网站| 欧美一区二区三区视频免费播放| 婷婷亚洲一区二区三区| 欧美剧在线观看| 欧美最新精品| 国产一区二区三区四区五区在线 | 色吧影院999| av资源在线播放| 国产在线精品播放| 亚洲精品国模| 欧美一级爱爱视频| 美女网站在线免费欧美精品| 亚洲精品女人久久久| 亚洲精品成人少妇| 中文字幕黄色av| 亚洲女人天堂成人av在线| 天堂8中文在线| 91精品美女在线| 成人无号精品一区二区三区| av日韩一区二区三区| 国产精品综合在线视频| 免费一级特黄3大片视频| 激情懂色av一区av二区av| av网站在线免费看| 中文字幕欧美日韩在线| 成人性生交大片免费网站| 国产欧美一区二区视频| 亚洲欧美在线专区| 五月天av在线播放| 国产夜色精品一区二区av| 久久久久久久久久久久久久av| 日韩一区二区免费在线观看| 一区二区高清不卡| 国产成人精品一区| 蜜桃精品wwwmitaows| av动漫在线看| 91亚洲精品一区二区乱码| 日本少妇bbwbbw精品| 日韩欧美综合一区| 午夜av在线播放| 成人欧美一区二区三区视频xxx| 性欧美欧美巨大69| 天堂av手机在线| 亚洲黄色性网站| a毛片在线免费观看| 欧美老女人性生活| 美女国产精品久久久| 黄色一级视频播放| 国产精品资源在线| 青青草原在线免费观看| 欧美一区二区黄| 天使と恶魔の榨精在线播放| 亚洲va电影大全| 欧美喷水视频| 蜜臀aⅴ国产精品久久久国产老师| 亚洲综合激情另类小说区| 丁香六月天婷婷| 91精品国产91久久久久久吃药 | 一区二区三区视频观看| www成人在线视频| 亚洲精品国产精品国自产| 麻豆精品视频在线观看| 小早川怜子一区二区的演员表| 91精品国产综合久久福利| 日本高清在线观看| 精品高清视频| 日韩激情一二三区| 日本一级特级毛片视频| 日韩欧美中文一区| av资源在线| 天堂av一区二区| 国内精品在线播放| 日韩av免费网址| 亚洲人成在线电影| 欧美黄页在线免费观看| 国产激情片在线观看| 成人h动漫精品一区二| 中文在线第一页| 日韩专区在线观看| 中文字幕av一区二区三区四区| 成人性免费视频| 亚洲国产精品激情在线观看| 国产视频在线观看免费| 97精品免费视频| 精品理论电影在线| 在线观看网站黄| 日韩欧美一区二区三区| 91在线播放网站| 国产精品美女黄网| 日韩电影在线观看一区| 91杏吧porn蝌蚪| 亚洲精品自拍偷拍| 人人玩人人添人人澡欧美| 超碰成人免费在线| 欧美国产日产图区| 黄色成人一级片| 成人h视频在线观看播放| 国产日韩欧美高清免费| 91无套直看片红桃在线观看| 亚洲白拍色综合图区| 日本成人福利| 国产视频一视频二| 亚洲私人影院在线观看|