OC之類和對(duì)象-創(chuàng)新互聯(lián)

從今天開始我的IOS開發(fā)算是起步了,第一天學(xué)習(xí)Objective-C,感覺不是很爽OC之類和對(duì)象。作為一名Java程序猿的我,第一次使用OC語法什么的都不習(xí)慣,尤其是@到處都是,不過,今天看看還是有點(diǎn)兒收獲的OC之類和對(duì)象

創(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的對(duì)象和類,對(duì)象就不提了,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.接口部分:對(duì)外聲明類的特征和行為。(也就是對(duì)類進(jìn)行一下說明,類似于說明書)

    2.實(shí)現(xiàn)部分:對(duì)內(nèi)實(shí)現(xiàn)行為。(內(nèi)部的具體實(shí)現(xiàn))

接口的部分標(biāo)志是:

@interface   類名 : NSObject{
    數(shù)據(jù)類型  實(shí)例變量;
    ...
}

- (返回值)對(duì)象名;   “-”是對(duì)象的方法
+ (返回值)方法名    “+”是類的方法 
@end

如:

@interface Person : NSObject{
//類的特征一定要寫在大括號(hào){}內(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  類名

- (返回值)對(duì)象名{
   
}

@end

如:

@implementation Person

- (void)sayHi:(NSString *)talkWithYou{
    NSLog(@"%@",talkWithYou);
}

@end

在OC中使用NSLog(); 函數(shù)進(jìn)行輸出

在聲明和實(shí)現(xiàn)寫好之后,就要在main.m文件中new個(gè)對(duì)象了,在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返回值類型,表示初始化完成的對(duì)象。
@end
@implementation Person
- (int)init{

    _name = "鵬偉";
    return self;
}
@end

這樣,在Person的_name就初始化為"鵬偉"了。

上面代碼里有個(gè)self,self是個(gè)指針,指向方法的調(diào)用者,誰調(diào)用就指向誰,代表當(dāng)前所指對(duì)象,可以利用self->成員變量名  訪問當(dāng)前對(duì)象內(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)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章標(biāo)題:OC之類和對(duì)象-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.muchs.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)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)