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