OC语言day04-18类的启动过程

pragma mark 类的启动过程

pragma mark 概念

/*
 #warning 当前类 被加载到内存的时候调用
 // load : 加载;装载;装货
 // 只要程序 启动 就会将所有类的代码 加载到内存中
 // load 方法会在当前类 被加载到内存的时候调用, 而且仅会调用一次
 
 #warning 当 当前类第一次被使用的时候 就会调用(创建类对象的时候)
 // initialize : 初始化
 // initialize 方法在整个程序的运行过程中 只会被调用一次, 无论你使用多少次 这个类都只会调用一次
 // initialize 用于 对某一个类进行一次性的初始化
 
 */

pragma mark 代码

#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#import "GoodStudent.h"
#pragma mark main函数
int main(int argc, const char * argv[])
{
    
    Person *p = [[Person alloc]init];
    Person *p1 = [[Person alloc]init];
    Person *p2 = [[Person alloc]init];
    Person *p3 = [[Person alloc]init];

    GoodStudent *s = [[GoodStudent alloc]init];
    
    return 0;
}


Person.h //人类
#import <Foundation/Foundation.h>

@interface Person : NSObject

@end
Person.m
#import "Person.h"

@implementation Person
#warning 当前类 被加载到内存的时候调用
// load : 加载;装载;装货
// 只要程序 启动 就会将所有类的代码 加载到内存中
// load 方法会在当前类 被加载到内存的时候调用, 而且仅会调用一次

// 如果存在继承关系, 先调用父类的load方法, 在调用子类的load方法
+ (void)load
{
    NSLog(@"person类被加载到内存了");
}

#warning 当 当前类第一次被使用的时候 就会调用(创建类对象的时候)
// initialize : 初始化
// initialize 方法在整个程序的运行过程中 只会被调用一次, 无论你使用多少次 这个类都只会调用一次
// initialize 用于 对某一个类进行一次性的初始化

// initialize 和load一样,如果存在在继承关系,会先调用父类的initalize , 再调用子类的initialize方法
+ (void)initialize
{
    NSLog(@"person initialize");
}

@end

Student.h //学生类 (人类的子类)
#import "Person.h"

@interface Student : Person

@end
Student.m
#import "Student.h"

@implementation Student

+ (void)load
{
    NSLog(@"student 类被加载到内存了");
}

+ (void)initialize
{
    NSLog(@"student initialize");
}
@end

goodStudent.h //好学生类 (学生的子类)
#import "Student.h"

@interface GoodStudent : Student

@end
goodStudent.m
@implementation GoodStudent
+ (void)load
{
    NSLog(@"goodStudent 类被加载到内存了");
}

+ (void)initialize
{
    NSLog(@"goodStudent initialize");
}
@end

Car.h //Car (汽车类)
#import <Foundation/Foundation.h>

@interface Car : NSObject

@end
Car.m
@implementation Car


+ (void)load
{
    NSLog(@"car类被加载到内存了");
}

+ (void)initialize
{
    NSLog(@"car initialize");
}
@end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容