Objective-C 入門(二)對象 類 變量 方法

Objective-C 入門(二)對象 變量 方法

 

學過Java 面向對象比較熟悉 Objective-C也是面向對象的

我們來看Objective-c所表達的方式

 

先寫一個類:我們看到這個類裏只有熟悉和方法名字 並沒用去實現 .文件

 

 #import <Foundation/Foundation.h>

 @interface SKPerson: NSObject{      //創建類

NSString * name;                     //NSString* 屬性

int age;                           //int 屬性

 }

-voidsetName(NSString*) n //set get 方法

-voidsetAge: (int)a

-NSString*name

- (void) go;

@end;

 

 

實現這個類的代碼  .m 文件

 

@implementation SKPerson

 

-voidsetName(NSString*) n{   //實現setName方法

If(n!=nil){ 

[n retain]                     //拿住這個對象

[ name release]               //釋放原來的對象

name=n;

}

}

 

-voidsetAge: (int)a{

Age=a;

}

-NSString*name{

return name;

}

- (void) go{

NSLog(@"This is a method");

}

 

@end;

 

實例化類對象的方法 .m 文件

 

#import <Foundation/Foundation.h>

int main(int argc,const char*argv[]){

NSAutoreleasePool * pool=[[NSAutoreleasePool alloc] intit ];

 

SKPerson * skyoceanone

skyoceanone=[[SKPerson alloc] init]; //也可以寫成[SKPerson new]不建議

 

[skyoceanone setName:@"sky"];

[skyoceanone setAge:25];

[skyoceanone go];

 

 

[skyoceanone release];

[pool drain];

return 0;

}

 

NSString * 類型 是一個指針類型 它指向的是字符串的內存地址 OC 的代碼 就是指針類型 (以後會做詳細的解析指針)

 

然後爲變量生成 get set 方法 (get字母被省略) OC中不能自動生成getset 下面介紹 另一種方法來生成 get set

 

屬性訪問器:

 

-voidsetName(NSString*) n

-voidsetAge: (int)a

-NSString*name

可以寫成:

@propert retain NSString* name //一行代碼就實現了 set get

@propert assign int age

 

實習方法的代碼可以寫成:

@synthesize name

@synthesize age

 

使用方法可以寫成:

Skyoceanone.name=@"sky"; //set 方法

Skyoceanone.age=25;

Skyoceanone.age;  //沒有= 就相當於 使用了get方法

 

 

 

 

 ---------本博文針對有JAVA基礎 OC還屬於初學者 文中有錯誤的地方還請指出 特感謝趙哲老師提供圖片

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章