【Objective-C】关于objective-c中的类的总结

来源:互联网 发布:阿里云服务器开发端口 编辑:程序博客网 时间:2024/05/17 01:20

1》类的创建:

@interface Car:NSObject

{

//变量名

}

//方法声明

@end


@implementation Car

//方法的实现

@end


2》类的继承(oc中不支持多继承,可以通过其他特性达到多继承的效果, 例如『类别』catergory 和『协议』protocol)

@interface Circle:Car

@end

 2.1》继承后的方法调度问题:

当代码发送消息的时候,调用方法时会首先去自身里面找有没有这个方法,如果没有就会去他的父类里面找,知道NSObject类里面。如果还没有就会出现错误。


2.2》继承后实例变量的问题:

NSObject类中会声明一个isa实例变量,保存的是指向当前类的指针。所以每一个类都会拥有这个实例变量指向自身的类,所以子类拥有的实例变量就是自己的实例变量加上父类中的实例变量还有NSObject类中的isa实例变量。


2.3》继承后的重写方法问题:

重写方法有时候要改变父类中声明的实例变量,就需要使用super关键字调用父类中的方法了


3》复合关系(就是将多个类组成一个类中使用)

1》description方法就如同java中的toString()方法,NSLog(@"%@")会默认调用description方法。

所以要打印一个对象可以重写他的description方法


4》构造方法

OC中类的构造方法就是init方法,重写init方法

- (id) init

{

if(slef =[super init])

{

、、、、、、

}

return self;

}


5》setter和getter方法

setter方法前面需要加set,而get方法不需要加get,只需要用变量名字就行。


继承之间是is-a的关系,复合之间是has-a的关系。


0 0