Objective-C - 构造方法

来源:互联网 发布:sql的sum函数 编辑:程序博客网 时间:2024/05/16 13:55

构造方法

// 构造方法:用来初始化对象的方法,是个对象方法,-开头// 重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值/* 重写构造方法的注意点1.先调用父类的构造方法([super init])2.再进行子类内部成员变量的初始化 */int main(){    // Person *p = [Person new];    /*     完整地创建一个可用的对象     1.分配存储空间  +alloc     2.初始化 -init     */    // 1.调用+alloc分配存储空间    // Person *p1 = [Person alloc];    // 2.调用-init进行初始化    // Person *p2 = [p1 init];//    // 调用-init进行初始化//    Person *p3 = [Person new];//    //    //    // 每个Person对象创建出来,他的_age都是10//        Person *p4 = [[Person alloc] init];    Student *stu = [[Student alloc] init];    NSLog(@"------");    return 0;}

人类

@interface Person : NSObject@property int age;@end
#import "Person.h"@implementation Person //重写-init方法- (id)init{    // 1.一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性    self = [super init]; // 当前对象 self    // 2.如果对象初始化成功,才有必要进行接下来的初始化    if (self != nil)    { // 初始化成功        _age = 10;    }    // 3.返回一个已经初始化完毕的对象    return self;}- (id)init{    if ( self = [super init] )    { // 初始化成功        _age = 10;    }    // 3.返回一个已经初始化完毕的对象    return self;}@end

学生类

#import "Person.h"@interface Student : Person@property int no;@end
#import "Student.h"@implementation Student// 学生对象初始化完毕后,年龄就是10,学号就是1- (id)init{    if ( self = [super init] )    {        _no = 1;    }    return self;}@end
0 0
原创粉丝点击