Objective-c物件導向基礎,objective-c物件導向

來源:互聯網
上載者:User

Objective-c物件導向基礎,objective-c物件導向

  目前移動開發熱火朝天,今天在家學習最近入手的《Objective-c基礎教程》,初步感覺Objective-c與.Net差別很大,為了更好的學習理解Objective-c,將以筆記的形式記錄學習的知識點,方便查閱。

  在Objective-c中類分為兩部分:聲明和實現,聲明使用關鍵字@interface,實現使用關鍵詞@implementation,@符號可以理解為是對C語言的擴充,在.Net中則是使用Class關鍵字,如下所示:

#import <Foundation/Foundation.h>@interface Person : NSObject{    @private    NSString* firstName;    NSString* lastName;}
//getter- (NSString*) firstName;- (NSString*) lastName;
//setter- (void) setFirstName : (NSString*) fName;- (void) setLastName : (NSString*) lName;- (NSString*) description;+ (NSString*) breath;@end@implementation Person-(NSString*) firstName{ return firstName;}-(NSString*) lastName{ return lastName;}-(void) setFirstName:(NSString *)fName{ self->firstName = fName;}-(void) setLastName:(NSString *)lName{ self->lastName = lName;}-(NSString*) description{ return [[self->firstName stringByAppendingString:@" " ] stringByAppendingString:self->lastName];}+(NSString*) breath{ return @"air";}@end

 觀察代碼得出以下結論:

  0. #import引入標頭檔,該命令可以保證標頭檔只被包含一次,無論此命令在檔案中出現多少次,c語言使用#include命令。

      1. 每個方法前面都有一個"+" 或者 "-"符號,+表示該方法為類方法由類調用,-表示該方法為執行個體方法由執行個體調用。

  2. self關鍵字表引用執行個體對象自身,與.NET中的this關鍵字功能相似。

  3. NSObject是Objective-c中基類,自訂類建議繼承NSObject,Objective-C不支援多繼承,但是可以通過category(類別) 和 protocol(協議)實現多繼承的效果 

  4. description方法繼承與NSObject,在Person中被重寫,在Objective-c中如果直接使用執行個體對象,預設調用description方法,相當於.NET中的ToString。

  5. 在Objective-c中方法調用在一對方括弧之間,形式如:[ instance method : parameter parameter ......]。

  6. super用於調用超類中的實現方式,被用於作為調用目標。

 

NSLog輸出格式符說明:

%d  輸出整形數字
%@  輸出對象,預設調用對象的description方法
\n  換行

 

 

 

  對Person類的測試代碼如下所示:

int main(int argc, const char * argv[]) {        Person* person = [Person new];        [person setFirstName:@"xiao"];    [person setLastName:@"ming"];        NSLog(@"first name: %@",[person firstName]);    NSLog(@"last name: %@",[person lastName]);    NSLog(@"full name: %@",person);//預設調用description方法        return 0;}

  程式輸出如下:

  以上就是開始學習Objective-C的初步理解,如有不正確的地方,請指出。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.