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

ObjC 里的对象和类


  • 如何创建一个类?
typedef struct_People{
    double height;
    double weight;
} People;

void squat ( People *people );
void stand ( People *people );
  • 在Obj-C里是如何定义这个类的?
  @interface People : NSObject //类名People,继承自NSObject类
  {
    double height;
    double weight;
  }
  - ( void ) squat;
  - ( void ) stand;
  @end

  减号是对象方法,加号是类方法;
  Objc里类也是一对象;
  • Obj-C是如何实现一个类的?
  @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方法)
  • 小结

如何创建一个类

对象的消息传递

如何创建一个对象

你可能感兴趣的:(深入浅出Objective-C笔记 (二))