您的位置:首页 > 编程语言 > C语言/C++

第04天OC语言(08):构造方法基本概念

2017-07-15 00:00 204 查看
不要等到明天,明天太遥远,今天就行动。

#####须读:看完该文章你能做什么?

重写init构造方法

#####学习前:你必须会什么?

什么是方法
OC中的方法也分为两种 : 类方法 和 对象方法
OC中的类方法用 +表示, OC中的对象方法 用-表示

 OC的方法 :
 没有返回值没有参数的  - (void)text1;
 没有返回值参数的     - (void)text2WithNumber:(int)number;
 有返回值没有参数的   - (int)text3WithNumber;
 有返回值有参数的     - (int)text2WithNumber:(int)number andNumber2:(int)number2; // 多个参数


#####一、本章笔记

一、
在OC中init开头的方法,我们称之为构造方法
构造方法的用途:用于初始化一个对象,让某个对象 已创建出来就拥有某些属性和值
二、
重写init方法,在init方法中初始化成员变量
注意 : 重写init方法 必须 按照苹果规定的格式重写,如果不按照规定 会引发一些未知的错误
1. 必须先初始化 父类, 在初始化子类
2. 必须先判断父类 是否 初始化成功, 只有父类 初始化成功 才能继续 初始化子类
3. 返回当前对象的地址

#####二、code
######main.m

#pragma mark 08-构造方法基本概念
#pragma mark 概念
/*
一、
在OC中init开头的方法,我们称之为构造方法
构造方法的用途:用于初始化一个对象,让某个对象 已创建出来就拥有某些属性和值
二、
重写init方法,在init方法中初始化成员变量
注意 : 重写init方法 必须 按照苹果规定的格式重写,如果不按照规定 会引发一些未知的错误
1. 必须先初始化 父类, 在初始化子类
2. 必须先判断父类 是否 初始化成功, 只有父类 初始化成功 才能继续 初始化子类
3. 返回当前对象的地址
*/
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类

#import "Person.h"
#pragma mark - main函数
int main(int argc, const char * argv[])
{
Person *p = [[Person alloc]init];
NSLog(@"age = %i",p.age);

Person *p2 = [[Person alloc]init];
NSLog(@"age = %i",p2.age);

Person *p3 = [[Person alloc]init];
NSLog(@"age = %i",p3.age);

return 0;
}

######Person

>>>.h
#import <Foundation/Foundation.h>

@interface Person : NSObject
@property int age;
@end
>>>.m
#import "Person.h"

@implementation Person

/* 重写init方法,在init方法中初始化成员变量
注意 : 重写init方法 必须 按照苹果规定的格式重写,如果不按照规定 会引发一些未知的错误
1. 必须先初始化 父类, 在初始化子类
2. 必须先判断父类 是否 初始化成功, 只有父类 初始化成功 才能继续 初始化子类
3. 返回当前对象的地址
*/

#pragma mark 初始化 方式1
/*
- (instancetype)init
{
// 1.初始化父类
// 只要父类初始化成功, 就会返回对应的地址,如果初始化失败,就会返回nil
// nil == 0 == 假 == 没有初始化成功
self = [super init];
// 2.判断父类 是否初始化成功
if (self !=nil) {
// 3.初始化子类(以后只有初始化子类 不固定 其他都是固定的)
// 设置属性的值
_age = 6;
}

// 4.返回地址
return self;
}
*/
#pragma mark 初始化 方式2
/*
- (instancetype)init
{
self = [super init];
if(self)
{
// 初始化子类
_age = 6;
}
return self;
}
*/

#pragma mark 初始化 方式3
- (instancetype)init
{
// 注意 : 不要把 = 号 写为 ==
// 一定要将 [super init]的返回值 赋值给self
if(self = [super init])
{
// 初始化子类
_age = 6;
}
return self;
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OC语言