深入浅出Objective-C笔记 (二)

2015-11-18  本文已影响46人  无聊的呆子

ObjC 里的对象和类


typedef struct_People{
    double height;
    double weight;
} People;

void squat ( People *people );
void stand ( People *people );
  @interface People : NSObject //类名People,继承自NSObject类
  {
    double height;
    double weight;
  }
  - ( void ) squat;
  - ( void ) stand;
  @end

  减号是对象方法,加号是类方法;
  Objc里类也是一对象;
  @implementation People
  - ( void )squat {
      height = 1.0;
  }
  - ( void ) stand {
      height = 1.8;
  }
  @end

Obj-C的对象是建立在堆上分配的结构体上的。所以需要用一个指针引用一个对象。

  People *people;

触发一个对象的方法

  [ people stand ];
  People *people = [ [ People alloc ] init ];

  消息可以嵌套

  从内到外依次触发消息

  内层方法[ People alloc ];向People类里的对象发送alloc消息,会触发People类的alloc方法。

  在ObjC里类本身也一个对象。

  调用alloc方法的结果是:创建并返回一个People类的对象。

  但是这个对象并没有初始化,只是完成了内存的分配,不能直接使用。

  alloc方法是ObjC里所有类都有的方法,当你的类创建时就包含了这个类方法。

  外层消息,[ people init ];

  首先向新创建的对象people发送一个init消息,触发people对象调用init方法,会完成自身的初始化。

并且把初始化后的对象返回给引用这个对象的指针变量,这时就完成了一个新对象的创建。

 init方法其实其实继承来的(暂时默认people对象本身就有init方法)

如何创建一个类

对象的消息传递

如何创建一个对象

上一篇 下一篇

猜你喜欢

热点阅读