美文网首页八天学会OC
第04天OC语言(17):获取类对象及类对象应用场景

第04天OC语言(17):获取类对象及类对象应用场景

作者: liyuhong | 来源:发表于2017-07-21 17:33 被阅读6次
    • 不要等到明天,明天太遥远,今天就行动。
    须读:看完该文章你能做什么?

    使用Class关键字和Class一些应用的场景,提高代码的复用性

    学习前:你必须会什么?

    什么是类,什么是类方法.


    一、本章笔记
     类对象的应用场景
         用于创建实例对象
             Class c1 = [p1 class];
             Person *p3 = [[c1 alloc] init];
             p3.age = 33;
             NSLog(@"age = %i",p3.age);
         用于调用类方法
            [c1 test];
    
    二、code
    main.m
    #pragma mark 17-获取类对象及类对象应用场景
    #pragma mark 概念
    /*
     类对象的应用场景
         用于创建实例对象
             Class c1 = [p1 class];
             Person *p3 = [[c1 alloc] init];
             p3.age = 33;
             NSLog(@"age = %i",p3.age);
         用于调用类方法
            [c1 test];
     */
    #pragma mark - 代码
    #import <Foundation/Foundation.h>
    #pragma mark 类
    #import "Person.h"
    #import "Car.h"
    void demo(Class c);
    #pragma mark - main函数
    int main(int argc, const char * argv[])
    {
        
        // 1.如何获取类对象
        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",c1,c2);
        
    #pragma mark 类对象的应用场景
        // 2.1 用于创建实例对象
        Person *p3 = [[c1 alloc] init];
        p3.age = 33;
        NSLog(@"age = %i",p3.age);
        
        // 2.2用于调用类方法
        [c1 test];
        
        demo(c1);
        demo([Car class]);
        return 0;
    }
    
    
    void demo(Class c)
    {
        id obj = [[c alloc]init];
        NSLog(@"%@",obj);
    }
    
    
    Person
    >>>.h
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    
    @property int age;
    
    + (void)test;
    
    @end
    
    >>>.m
    #import "Person.h"
    
    @implementation Person
    
    + (void)test
    {
        NSLog(@"test");
    }
    @end
    
    
    Car
    >>>.h
    #import <Foundation/Foundation.h>
    
    @interface Car : NSObject
    
    @end
    
    >>>.m�
    #import "Car.h"
    
    @implementation Car
    
    @end
    

    相关文章

      网友评论

        本文标题:第04天OC语言(17):获取类对象及类对象应用场景

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