<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的OC语言笔记,期待与您交流!
一、OC中类的声明
先在Xcode中新建一个类文件,命名为Dog.h,然后按以下格式进行类的声明
#import<Foundation/Foundation.h> //相当于C中引入头文件 @interface Dog:NSObject{ } @end
上面的代码中Dog后面的冒号表示继承,继承自基类NSObject,在类的声明中字段(相当于java中的属性)只能在左花括号和右花括号之间定义,消息(在Objective-C中把函数称作消息)只能在右花括号与@end之间定义。一般来讲,在类的OC中声明类时相当于java中定义一个接口。
二、类的实现
新建类文件命名为Dog.m并在文件中键入以下代码
#import "Dog.h" //将新建的接口引入 @implementation Dog //实现Dog这个接口 - (id) init{ //复写初始化函数 self = [super init]; //这一句的意思是把父类中的初始化函数赋给本类 age = 20; } return self; } - (int) getage{ //获取age return age; }
- (int)setage:(int)newage{ //这个函数的名字叫setage: 第一个int是函数的返回值类型第二个int是形参newage的类型
age = newage;
return age;
} @end
这样一来,我们就把一个接口实现了。也就是我们有Dog这么一个类了接下来就该创建对象。在上面的代码中函数前面的+、-分别代表类函数和实例函数,(id)id代表函数的返回值类型,可以为void、int、float等等
三、对象的创建与销毁
创建对象-----》Dog *dog = [Dog alloc]; //*dog相当于创建dog这么一个引用指向新建的小狗对象
初始化构造函数--------》[dog init];
销毁对象---------》[dog release];
四、函数的调用
注意,Xcode判断是否为init方法规则:方法返回id,并且名字以init+大写字母开头+其他 为准则。例如:- (id) initWithXXX;
否则在使用编译的时候会出现error:Cannot assign to 'self' outside of a method in the init family
现在,假设我们已经在Dog类中建立了一个函数-(int)setage:(int)newage;
调用-------》int x = [dog setage:23]; //调用dog对象的setage方法,把int型返回值赋给x