实例化对象时,需要分配内存,然后这些内存被初始化并保存一些有用的默认值,这些值不同于你在获得新分配的内存时得到的随机值。内存分配和初始化完成后,就创建了一个新的对象实例。
说明:由于对象的局部变量特定于该对象的实例,因此我们称它们为实例变量,通常简写为ivars.
为了创建新对象,我们需要向相应的类发送new消息。该类接受并处理完new消息后,我们就会得到一个可以使用的新对象实例。
Objective-C具有一个几号的特性,你可以把类当成对象来向类发送消息,这种便捷的行为不局限于某个特定的对象,而是对全体类都通用。这种消息通常用在创建新对象时,如果需要创建新的circle对象,请求circle类创建新对象比请求某个现有的circle对象更合适一些。
int main (int argc, const char * argv[]) { id shapes[3]; ShapeRect rect0={0,0,10,30}; shapes[0]=[Circle new];// 通过向需要创建对象的类发送new消息,可以创建各个对象 [shapes[0] setBounds:rect0]; [shapes[0] setFillColor:kRedColor]; ShapeRect rect1={30,40,50,60}; shapes[1]=[Rectangle new]; [shapes[1] setBounds: rect1]; [shapes[1] setFillColor:kBuleColor]; ShapeRect rect2={15,19,37,29}; shapes[2]=[OblateSphereoid new]; [shapes[2] setbounds: rect2]; [shapes[2] setFillColor:kBuleColor]; drawShapes(shapes,3); return (0); }