從今天開始我的IOS開發(fā)算是起步了,第一天學(xué)習(xí)Objective-C,感覺不是很爽。作為一名Java程序猿的我,第一次使用OC語法什么的都不習(xí)慣,尤其是@到處都是,不過,今天看看還是有點(diǎn)兒收獲的。
創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今,先為肥鄉(xiāng)等服務(wù)建站,肥鄉(xiāng)等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為肥鄉(xiāng)企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。今天主要看了OC的對象和類,對象就不提了,Java就是一門面向?qū)ο蟮恼Z言,以前看《Thinking in Java》時(shí)就知道,everything is object ,所以這部分就過了。
在Xcode中類的定義和實(shí)現(xiàn)是分別保存在兩個(gè)文件中的,一個(gè)是.h文件,一個(gè)是.m文件。
.h文件中寫的是類的聲明部分,包括類的特征和行為的聲明(方法聲明)。
.m文件中寫的是行為的實(shí)現(xiàn)(方法的實(shí)現(xiàn))。
類的實(shí)現(xiàn)不能放在.h文件中的。
OC中類的定義包含兩部分:
1.接口部分:對外聲明類的特征和行為。(也就是對類進(jìn)行一下說明,類似于說明書)
2.實(shí)現(xiàn)部分:對內(nèi)實(shí)現(xiàn)行為。(內(nèi)部的具體實(shí)現(xiàn))
接口的部分標(biāo)志是:
@interface 類名 : NSObject{ 數(shù)據(jù)類型 實(shí)例變量; ... } - (返回值)對象名; “-”是對象的方法 + (返回值)方法名 “+”是類的方法 @end
如:
@interface Person : NSObject{ //類的特征一定要寫在大括號{}內(nèi) //在OC中字符串用NSString * //@public在這里的意思和Java中是差不多一樣的,加了之后此處的實(shí)例變量能夠被訪問,此外還有@private和@protected @public NSString *_name; NSInteger _age; NSString *_sex; } - (void)sayHi:(NSString *)talkWithYou; @end
NSObject 是一個(gè)基類,幾乎所有的類都是繼承這個(gè)類(需要注意的是在OC中的基類或者根(root)類并不是只有這一個(gè),例如NSProxy也是OC的基類)。
實(shí)現(xiàn)部分的標(biāo)志是:
@implementation 類名 - (返回值)對象名{ } @end
如:
@implementation Person - (void)sayHi:(NSString *)talkWithYou{ NSLog(@"%@",talkWithYou); } @end
在OC中使用NSLog(); 函數(shù)進(jìn)行輸出
在聲明和實(shí)現(xiàn)寫好之后,就要在main.m文件中new個(gè)對象了,在main函數(shù)中使用以下方法新建一個(gè):
Person *person = [[Person alloc]init];
另外還有一個(gè)
Person *Person = [Person new];
這個(gè)方法也可以新建一個(gè),[Person new]基本等同于[[Person alloc]init],alloc 在分配內(nèi)存的時(shí)候使用了zone。
不過,new方法并不受推薦,如果使用new的話,初始化方法就被固定死了,只能調(diào)用init,alloc則可以用自己的或定制的方法進(jìn)行初始化。
例如:我們可以定制Person類的初始化
@interface Person : NSObject{ @public NSString *_name; } - (id)init; //id返回值類型,表示初始化完成的對象。 @end
@implementation Person - (int)init{ _name = "鵬偉"; return self; } @end
這樣,在Person的_name就初始化為"鵬偉"了。
上面代碼里有個(gè)self,self是個(gè)指針,指向方法的調(diào)用者,誰調(diào)用就指向誰,代表當(dāng)前所指對象,可以利用self->成員變量名 訪問當(dāng)前對象內(nèi)部的實(shí)例變量,有點(diǎn)像Java中的this。。。
天也不早了,先寫到這里了就,回家啦,明天繼續(xù)。。。。。。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章標(biāo)題:OC之類和對象-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://vcdvsql.cn/article32/cdjesc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、網(wǎng)站營銷、搜索引擎優(yōu)化、微信小程序、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容