OC里面的类
类的定义
不指定方法的返回值
-(id)initWithObject:(id)obj;
- initWithObject:obj;
省略返回值时,默认的类型是id,也就是上面两条等价,在c语言中默认是int
接口
类公开给外部的,关于使用这个类的消息叫接口。
类的定义
@interface 类名:父类名
{
实例变量的定义;
}
方法声明;
@end
注意{}里面的是实例的变量而不是方法
类名不能和变量名和方法名相同,但类的实例可以。
方法声明
-(id)cellAtRow:(int)row column:(int)col;
row和col表示参数,cellAtRow和column是提示的
类的前置声明
当我们定义一个类的时候,有时会将类实例变量,类方法和参数和返回值的类型指定为另外一个类。
有两种方法
1.导入原有类的头文件
2.使用类的前置声明
1的缺点是引入的头文件可能还需引入其他类的头文件,导致编译变慢;而且头文件中还有其他信息,如果头文件太多,不太好
2的缺点是如果需要引入类的方法和属性,那么必须要引入头文件
2的好处是提高编译速度,而且如果多个接口出现类的嵌套定义,用导入头文件的方法无法解决的时候可以用类的前置声明
类的实现
@implementation 类名
方法的定义
@end
类的实现部分不需要再次声明父类,而接口部分需要写上父类
实现部分包含了接口部分所有方法的实现。如果接口部分没有定义任何的方法,实现部分也可以为空,即不包含任何方法的实现
方法的实现部分的第一行代码和方法声明部分完全相同(方法声明以”;”结尾,实现时需要删除然后加上{}
调用类
调用类首先要在对应的实现文件里面或头文件里面加入import“xxxx.h”
main函数
main函数也可以使用实现文件里面的方法,只要import头文件