类的深入研究

 1. 在Person.h里面添加两个方法声明+ (void)eat; - (void)run;

    #import <Foundation/Foundation.h>

        

        @interface Person : NSObject

        + (void)eat;

        - (void)run;

        

        @end

    Person.m里面实现方法

    #import "Person.h"

        

        @implementation Person

        + (void)eat{

            NSLog(@"好好吃饭");

        }

        - (void)run{

            NSLog(@"跑步锻炼��");

        }

        @end

   

    - (void)viewDidLoad {

        [super viewDidLoad];

    Person *p1 = [[Person alloc] init];

    //类的本质也是对象,是属于Class类的对象

    Class c1 = [p1 class];//调用对象方法得到类对象

    Class c2 = [Person class];//调用类方法得到类对象

    NSLog(@"\n c1 = %p \n c2 = %p",c1,c2);

    //打印结果如下:

    //    2017-07-13 09:59:25.136 类的深入研究[65419:799244]

    //    c1 = 0x100e21ec0

    //    c2 = 0x100e21ec0

    // 地址相同说明是等价的,是同一个类对象

    [c1 eat];//利用类对象调用类方法

    Person *p2 = [[c1 alloc] init];//利用类对象alloc创建对象

    [p2 run];//利用对象调用对象方法

    }


  2.  Person.m里面添加方法

    当类加载进内存的时候调用,就是说没有创建这个类,只要这个类在工程里面就会加载调用

    +(void)load{

        NSLog(@"Person------load方法");

    }

    在代码里面第一次创建类的时候就会调用

    +(void)initialize{

        NSLog(@"Person------initialize方法");

    }

//    在这个里面啥也不写,直接运行,就会调用+(void)load;这个方法

//    打印结果如下:

//    2017-07-13 10:07:28.301 类的深入研究[65443:801957] Person------load方法

    Person *p1 = [[Person alloc] init];

//这个时候只是写这一句代码,直接运行,就会调用+(void)load;+(void)initialize方法

//打印结果如下:

//    2017-07-13 10:09:36.905 类的深入研究[65462:803189] Person------load方法

//    2017-07-13 10:09:36.953 类的深入研究[65462:803189] Person------initialize方法

//如果Student继承Person类的时候,这个时候在Student.m里面添加连个方法

//    +(void)load{

//        NSLog(@"Student------load方法");

//    }

//    +(void)initialize{

//        NSLog(@"Student------initialize方法");

//    }

    Student *s = [[Student alloc] init];

    //打印结果如下:

//    2017-07-13 10:16:58.469 类的深入研究[65498:806112] Person------load方法

//    2017-07-13 10:16:58.470 类的深入研究[65498:806112] Student------load方法

//    2017-07-13 10:16:58.517 类的深入研究[65498:806112] Person------initialize方法

//    2017-07-13 10:16:58.517 类的深入研究[65498:806112] Student------initialize方法

    //小伙伴们明白了吧!



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值