OC基础-----> 初始化方法

A ----> 继承概要

1)面对对象的三大特性:封装、继承、多态

2)继承即能保证类的完整, 又能简化代码

3)定义三个类: 普通僵尸、路障僵尸、铁桶僵尸,这三个类有很多重复的实例变量和方法,比如:血量、攻击力、移动速度;行走,攻击,死亡。 面对对象的继承特性大大简化代码。

把公共的实例变量写在父类里 , 子类只需要写自己独有的实例变量和方法即可。

B ---- > 继承特点

1)继承的上层:父类; 继承的下层:子类

2)继承的内容 : 所有的实例变量和方法

3)继承是单向的, 不能相互继承

4) 继承具有传递性: A 继承与 B ,  B 继承与 C , A 具有 B 和 C 的特征和行为

5)如果子类不满意父类方法的实现, 可以重写(overwrite)父类的方法


C ---- > 重写从父类继承来的方法的不同情况

1)完全以子类的实现内容为主,丢弃父类实现的内容。

2)完全以父类的实现内容为主, 没有子类实现的内容

3)既有父类对该方法的时下, 也有子类对该方法的实现

D ---- >  super

1)super 是编译器指令, 并非对象

2) 作用: 给 super 发消息, 可以指向父类该方法的实现

E ---- > 继承中方法的执行

1、OC 中方法调用采用消息发送机制 【 receiver message 】;

2、给 CollegeStudent 对象发送消息 : study

1)查找本类是否实现 study(重写) 方法 

2)如果没有, 查找父类中 study 是否实现

3)逐级向上查找, 找到即执行

4)如果 NSObject 也没有实现, 会抛出异常, 引起 crash

F --- > 初始化方法步骤

1、创建对象分两步:1)为对象分配空间 2)进行初始化操作

2、初始化方法的主要作用是 : 为某些实例变量赋初值

3、初始化方法在对象的整个生命周期里只使用一次

4、初始化方法实在对象的初始化阶段完成其实例变量的赋值操作,一个对象的初始化阶段只有一次,所以初始化方法只使用一次

G ---- > 初始化实例

- ( id )init{

// 给super 发送 init 消息:执行父类中实现的 init  方法

self = [super init];

// 判断从父类继承过来的 init 方法 是否初始化成功

if ( self ){

// 初始化设置

}

//返回初始化完成的对象

return self;

}

子类定义了除父类中公共实例变量之外的实例变量

在自身的初始化方法中, 优先向super 发送 init 消息,初始化公共变量, 初始化成功后, 再初始化自身持有变量, 从而完成所有实例变量的初始化

H ----  > self

1、self 是系统关键字。self 在方法中指代当前方法的调用者

2、self 在实例方法中, 指代调用当前方法的对象

3、self 在类方法中, 指代当前类

I ---- > 初始化方法特征

1、初始化方法是 “-”  方法

2、id 或 instancetype 类型的返回值

3、以 init 开头

4、可以带 0 到多个参数。

5、内部实现 : 限制性super 初始化方法, 再初始化自身变量, 后 return self

J ---- > 初始化过程

1、自己的初始化方法中,优先调用父类的初始化方法。

2、父类的初始化方法再调用父类的初始化方法,依次往上调

3、处于最上层的初始化完成之后,回到第二层的初始化方法中,完成第二层的初始化

4、第二层的初始化完成后,回到第三层的初始化方法中,依次执行初始化方法,直到本类的初始化方法完成

K ---- > 指定初始化方法

1、一个类可以有多个初始化方法

2、虽然有多个初始化方法, 但是一个对象只能使用一个初始化方法。

例如 : initWithName:     initWithGender:   initWithName: gender:

3、指定初始化方法 : 无论调用哪一个初始化方法都会调用的初始化方法

4、通常把初始化想做的全部操作放到指定初始化方法中,这样就无需在每一个初始化方法中都要写一遍,简化代码,方便后期维护

5、选取原则 : 一般选参数最多的初始化方法作为指定初始化方法

L ---- > 便利构造器简述

1、封装类对象创建过程 : 内部实现: 封装了alloc 和初始化操作, 创建对象更加方便快捷

2、1)便利构造器是 “ + ” 方法

2)返回本类型的实例

3)方法名以类名开头

4)可以有 0 到多个参数  + (id)personWithName :  gender :  age : 


M ----- > 小结

1、继承是面对对象的三大特性之一, 合理的继承, 能减少很多 冗余代码,加快开发速度。

2、初始化方法以 init 开头,在对象的生命周期中只使用一次

3、遍历构造器封装了对象的创建过程, 进一步简化了创建的步骤。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容