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

来源:互联网 发布:qq mac版 编辑:程序博客网 时间:2024/05/21 17:40

继承

@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
原创粉丝点击