热门IT资讯网

Objective-C 入门(二)对象 类 变量 方法

发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,Objective-C 入门(二)对象 类 变量 方法学过Java 的 面向对象比较熟悉 Objective-C也是面向对象的我们来看Objective-c所表达的方式先写一个类:我们看到这个类里只有

Objective-C 入门(二)对象 变量 方法

学过Java 面向对象比较熟悉 Objective-C也是面向对象的

我们来看Objective-c所表达的方式

先写一个类:我们看到这个类里只有熟悉和方法名字 并没用去实现 .文件

#import

@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

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 的代码 就是指针类型 (以后会做详细的解析指针)

然后为变量生成 getset 方法 (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还属于初学者 文中有错误的地方还请指出 特感谢赵哲老师提供图片

0