摘要: 1. 不要直接更改由继承得到的实例变量的值,一定要使用方法来更改它们2. 只能继承一个某些语言(例如C++)具有多重继承特性,在这种情况下,一个类可以直接从两个或多个类继承而来。但Objective-C不支持多继承,如果你尝试在Objective-C中使用多继承,编译器将不能正常识别它们,你可以通过Objective-C的其他特性获取多继承的有点,例如分类和协议3. 对于方法的定义,使用空正文或者返回一个虚值都是可以的比如:Shape类的draw方法-(void) draw{} //这样Shape的子类都能实现各自不同的方法4. 创建一个新类时,其对象首先从自身的超类中继承实例变量,然后(可选 阅读全文
posted @ 2013-09-12 16:16 时光独白 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 实例化对象时,需要分配内存,然后这些内存被初始化并保存一些有用的默认值,这些值不同于你在获得新分配的内存时得到的随机值。内存分配和初始化完成后,就创建了一个新的对象实例。说明:由于对象的局部变量特定于该对象的实例,因此我们称它们为实例变量,通常简写为ivars.为了创建新对象,我们需要向相应的类发送new消息。该类接受并处理完new消息后,我们就会得到一个可以使用的新对象实例。Objective-C具有一个几号的特性,你可以把类当成对象来向类发送消息,这种便捷的行为不局限于某个特定的对象,而是对全体类都通用。这种消息通常用在创建新对象时,如果需要创建新的circle对象,请求circle类创建 阅读全文
posted @ 2013-09-12 10:51 时光独白 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 代码:@implementation Circle-(void) setFillColor: (ShapeColor) c{ fillColor=c;}-(void) setBounds: (ShapeRect) b{ bounds=b;}-(void) draw{ NSLog(@"draw a cifrcle at(%d %d %d %d) in %@",bounds.x,bounds.y,bounds.width,bounds.heihgt,colorName(fillColor));}@end@implemention是一个编译器制定,表明你将为某个类提供代码。类名出 阅读全文
posted @ 2013-09-12 10:12 时光独白 阅读(2173) 评论(0) 推荐(0) 编辑