美文网首页
类的本质

类的本质

作者: MarkTang | 来源:发表于2016-01-09 00:49 被阅读48次
    获取类的对象
    [实例对象 class];
    [类名 class];
    
    Class *c1 = [p1 class];
    
    
    2.用于创建实例对象
    person * p3=  [[c3 alloc]init];
    
    2.2用于调用方法
    
    [c1 test];
    
    3.用于作为函数参数
    
    -(void)test(Class c)
    {
        
        id obj = [[c alloc]init];
        return obj;
    }
    小写 class 是方法
    大写Class是数据类型
    
    //问题:类的本质是什么?
    答:
    
    创建类对象
              类其实也是一个对象, 这个对象会在这个类第一次被使用的时候创建
              只要有了类对象, 将来就可以通过类对象来创建实例对象
              实例对象中有一个isa指针, 指向创建自己的类对象
              类对象中保存了当前对象所有的对象方法
              当给一个实例对象发送消息的时候, 会根据实例对象中的isa指针去对应的类对象中查找
              所有类对象的继承关系就是元类对象的继承关系
    ----------------------------------------------------------------
    #mark- 17-获取类对象及类对象应用场景
    //问题1:如何获取类对象?
    答:
    
    [Person class]
              // [实例对象 class];  [类名 class];
              Person *p1 = [[Person alloc] init];
              Person *p2 = [[Person alloc] init];
              // 一个类再内存中只有一份类对象
              Class c1 = [p1 class];
              Class c2 = [p2 class];
              Class c3 = [Person class];
              NSLog(@"c1 = %p, c2 = %p, c3 = %p", c1, c2, c3);
    //问题2:类对象的应用场景
    答:
              用于创建实例对象
              
              Person *p3 = [[c1 alloc] init];
              p3.age = 30;
              NSLog(@"%i", p3.age);
              用于调用类方法
              
              [Person test];
              [c1 test];
    

    相关文章

      网友评论

          本文标题:类的本质

          本文链接:https://www.haomeiwen.com/subject/emxqkttx.html