第04天OC语言(08):构造方法基本概念
2017-07-15 00:00
204 查看
不要等到明天,明天太遥远,今天就行动。
#####须读:看完该文章你能做什么?
重写init构造方法
#####学习前:你必须会什么?
什么是方法
OC中的方法也分为两种 : 类方法 和 对象方法
OC中的类方法用 +表示, OC中的对象方法 用-表示
#####一、本章笔记
#####二、code
######main.m
######Person
#####须读:看完该文章你能做什么?
重写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
相关文章推荐
- 第04天OC语言(14):类工厂方法基本概念
- 第03天OC语言(08):继承基本概念
- 第04天OC语言(13):自定义构造方法以及成员变量名称注意点
- 第04天OC语言(12):自定义构造方法在继承中的表现
- 第04天OC语言(11):自定义构造方法
- 黑马程序员 - OC语言 - 构造方法的概念
- 第06天OC语言(08):分类基本概念
- 【Objective-C】OC中字符串(NSString)的基本概念和常用处理方法
- 第07天OC语言(07):字符串基本概念
- 【Objective-C】OC中KVO的基本概念和使用方法
- OC_03对象方法属性等基本概念
- 黑马程序员——OC语言学习——关键字id、构造方法、Category-分类、类的本质、 description方法、 SEL方法
- 第04天OC语言(15):类工厂方法在继承中的注意点
- 学习笔记11-OC基本语法和构造方法
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
- OC语言构造方法
- 【Objective-C】OC中KVO的基本概念和使用方法
- OC-oc语言里的构造方法
- 第03天OC语言(06):self关键字基本概念
- OC语言10-构造方法