您的位置:首页 > 移动开发 > Objective-C

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

2015-08-22 21:14 736 查看

继承

@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];


便利构造器是一种快速创建对象的方式。本质上是把初始化方法做一次封装,方便外接使用。

便利构造器是一个类方法。

通常以类名开头
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 实例 对象初始化