oc-21-class对象

/**
 什么是类对象(Class对象)?
 类在内存当中也是以对象形式进行存储的.
 
 1.类对象的类型:Class类型
 
 2.如何创建类对象:
 1)Class 类对象名 = [类名 class];

 2)类名 *对象名 = [类名 new];
   Class 类对象名 = [对象名 class];
 
 3)只要用1个类创建的多个类对象,地址都一样.
 
 3.如何使用类对象
 1)用类对象创建对象.
 2)用类对象调用类方法
 3)用类对象调用对象方法.---不能调用对象方法
 4)访问成员变量  -- 不能访问成员变量.
 
 
 */
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Student.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // 1.获取类对象
        Class c = [Person class];
        // 2.调用类方法
        [c test];
    }
    return 0;
}
// 用类对象创建对象,访问方法
void test2(){
    // 1.获取类对象
    Class c = [Person class];
    // 2.用类对象创建对象
    Person *p = [c new];
    // 3.访问方法
    [p test];//对象方法
}
// 类对象可以创建对象
void test1(){
    // 1.获取类对象
    Class c = [Person class];
    // 2.用类对象创建对象
    Person *p = [c new];
    // 3.调用方法
    [p test];
}

// 如何得到类对象
void test(){
    // 1.获取类对象的方法
    Person *p = [Person new];
    Class c = [p class];
    // 2.获取类对象的方式
    Class c1 = [Person class];
    NSLog(@"c:%p,c1:%p",c,c1);//c,c1的地址是一样的,都就是Person类。
}
原文地址:https://www.cnblogs.com/yaowen/p/5310748.html