iOS学习笔记-Objective-C-继承和实例化、对象初始化

继承

@interface childClass : superClass{
}
  • OC中,一个类可以继承另一个类
  • 被继承的类成为父类(super class)或超类,继承的成为子类(subclass)
  • 子类可以直接使用父类的部分特征和行为(继承),继承具有传递性(若A是B的子类,B是A的子类,那么A也具有C的特征和行为)
  • 子类可以重写父类的方法,重写是不需要声明

实例化

    //实例化Studentl类的实例对象
    Student *student = [[Student alloc] init];

方法的调用

    //调用实例方法
    [student sayHi];
  • (+)类方法:必须用类(名)来调用
  • (-)实例方法:必须用对象来调用

初始化

通常以init开头,一个类可以包含多个初始化方法

self、super

  • super:将消息发送给父类对象:
  • self:将消息发送给本对象
  • self始终代表接受消息的对象

指定初始化方法

//指定初始化方法 通常情况下能够赋初始值最多的方法
- (id)initWithName:(NSString *)_name
               Age:(NSInteger)_age
            Gender:(NSString *)_gender
            Number:(NSInteger)_number
             Score:(CGFloat)_score
{
    //self 指的就是将消息发送给本对象
    //super 指的就是将消息发送给父类对象
    //[super init]就是将消息init发送给学生类的父类进行执行

    self = [super init];

    if (self != nil) {
        name = _name;
        age = _age;
        gender = _gender;
        number = _number;
        score = _score;
    }

    return self;
}
  • 一个类有且只有一个指定初始化方法
  • 在众多初始化方法中,无论调用哪个初始化方法,指定初始化方法都会执行
  • 指定初始化方法会跟父类初始化方法有一定联系。

自定义初始化方法

- (id)initWithName:(NSString *)_name
{
    return [self initWithName:_name Age:0 Gender:nil Number:0 Score:0.0f];

}
  • 为对象赋予指定初始值
  • 通常以init开头

便利构造器

+ (id)studentWithName:(NSString *)_name
{
    //先实例化一个对象
    Student *student =[[Student alloc] initWithName:_name];

    return [student autorelease];
}
    //通过便利构造器创建实例对象
    Student *autoStudent = [Student studenrWithName:@"XiaoA"];
    [autoStudent sayHi];
  • 便利构造器是一种快速创建对象的方式。本质上是把初始化方法做一次封装,方便外接使用。
  • 便利构造器是一个类方法。
  • 通常以类名开头
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值