OC 构造方法

Posted 守望星空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC 构造方法相关的知识,希望对你有一定的参考价值。

 

#import <Foundation/Foundation.h>

@interface Student : NSObject {
    int _age;
    int _no;
}

- (void)setAge:(int)age;
- (int)age;

- (void)setNo:(int)no;
- (int)no;

// 自己写一个构造方法
- (id)initWithAge:(int)age andNo:(int)no;

@end

 

#import "Student.h"

@implementation Student

- (void)setAge:(int)age {
    _age = age;
}

- (void)setNo:(int)no {
    _no = no;
}

- (int)age {
    return _age;
}

- (int)no {
    return _no;
}
// 实现构造方法
- (id)initWithAge:(int)age andNo:(int)no {
    // 首先要调用super的构造方法
    // self = [super init];
    
    // 如果self不为nil
    if (self = [super init]) {
        // _age = age;
        // _no = no;
        self.age = age;
        self.no = no;
    }
    
    return self;
}

// 重写父类的description方法
// 当使用%@带打印一个对象的时候,会调用这个方法
- (NSString *)description {
    NSString *str = [NSString stringWithFormat:@"age is %i and no is %i", self.age, self.no];
    return str;
}

// 如果直接把方法写在.m文件中,没有在.h文件中进行声明,那么这就是私有方法

// 谁调用方法,self就指向谁
- (void)test {
    int age = self.age;
}

+ (void)test2 {
    [Student alloc];
    
    [self alloc];
    
    // 上面两句代码是等效的
}
@end

 

以上是关于OC 构造方法的主要内容,如果未能解决你的问题,请参考以下文章

22-oc构造方法基本概念

OC基础复习之构造方法小结

OC 构造方法

oc35--自定义构造方法

oc36--自定义构造方法在继承中的表现

OC学习篇之---类的初始化方法和点语法的使用