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还属于初学者 文中有错误的地方还请指出 特感谢赵哲老师提供图片