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类。
}
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/5310748.html,如需转载请自行联系原作者

相关文章
|
6月前
|
Java
获取 Class 对象
获取 Class 对象
33 1
|
iOS开发
OC追根溯源之Class
前两天碰到一面试题: //分辨下面res的是非 BOOL res1 = [[NSObject class] isKindOfClass:[NSObject class]]; BOOL res2 = [[NSObject class] isMemberO...
927 0