在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
复合 使用复合可组合多个对象,使之人工协作。 会同时使用继和复合来创建自己的类。 编程中的复合就好像音乐中的作曲一样;将多个组件组合在一起配合使用。 在Objective-C中,复合是通过包含作为实例变量的对象指针实现的。 { Pedal *pedal; Tire *tire; }
pedal 和tire通过复合的方式组成了Unicycle(独轮车) Car 程序 如何搭建汽车模型。 CarParts 包含在主程序mainCarParts.m中。 #import <Foundation/Foundation.h> @interface Tire : NSObject @end @implementation Tire - (NSString *) description { return (@"I am a tire. Ilast a while"); } @end Tire类中唯一的方法是description,没有在接口中声。 Cocoa神奇的帮助 自定义NSLog() 通过NSLog()可以使用%@格式符来输出对象. 从技术上讲,就是NSLog()给这个对象发送描述消息,然后对象的description方法生成一个NSString并返回。 在类中添加description方法就可以自定义NSLog()如何输出对象 在自定义的description方法中,你可以选择返回一个字面值NSString.如@"I am a cheese Danish Object" 在Cocoa中,NSArray类管理的是对象集合。 它的description 方法调度 当代码发送消息时,Objetive C的方法调度程序将在当前类中搜索相应的方法。 如果高度程序无法在接收消息的对象类中找到相应的方法,它就在该对象的超类中进行[。 [shape setFillColor:kRedColor] Objective -c 方法调度程序将查找接收该消息的对象Circle类有一个指向其它代码的指针, 消息 实例变量 创建一个新类时,其对象首先从自身的超过类中继承实例变量,然后添加它们自己的实例变量。 @interface RoundedRectagnle : shape { int radius; } @end 内存布局 继承在子类和超类之间建立了一种"isa"关系, 所以NSobject的实例变量称为isa 使用更具体种类的对象,称为多态
每个方法调用都获得一个名为self的隐藏参数,它是一个指向接收消息的对象的指针方法使用self参数来查找它们要使用的实例变量 ,
|
请发表评论