美文网首页
OC基础-----> 初始化方法

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

作者: b8028f13eaa2 | 来源:发表于2016-05-19 16:53 被阅读147次

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、遍历构造器封装了对象的创建过程, 进一步简化了创建的步骤。

相关文章

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

    A ----> 继承概要 1)面对对象的三大特性:封装、继承、多态 2)继承即能保证类的完整, 又能简化代码 3)...

  • From Objective-C to Ruby(4)-类和模块

    类 定义类 OC: ruby: 初始化方法 OC: ruby: 实例变量和属性 OC: ruby: 类方法和对象方...

  • View从Xib初始化流程

    通过代码从xib读取View view的初始化方法分别为 通过xib创建View,只走下2个方法 OC复习/UI基础

  • iOS(oc)与vue交互

    1、oc调用vue方法 需要暴露方法 2、oc 调用vue方法 wkwebview代理设置 初始化wkwebvie...

  • Swift中重写重载构造(初始化)方法

    构造方法是一个类创建对象最先也是必须调用的方法, 在OC中, 我们更习惯称这类方法为初始化方法. OC中的初始化方...

  • WkWebView和JS交互

    JS调用OC方法 oc中初始化WKWebView对象,进行相应的配置 JS中定义给oc传参的方法,注意sendMe...

  • iOS WKWebView与JS交互

    1.OC调用JS方法 2.JS调用OC的方法 1.初始化WKWebView时,调用addScriptMessage...

  • deinit析构函数

    init 构造函数,初始化方法 deinit 析构函数,反初始化方法 deinit 和OC中的 dealloc 一...

  • init和viewDidLoad

    init方法 init方法是OC对象初始化的方法,所有继承自NSObjct的类都有init方法。 当调用类的初始化...

  • Using Swift with Cocoa and Objec

    摘录 OC的初始化方法init(...)在Swift中被引为init?(...) --- 初始化可能失败init!...

网友评论

      本文标题:OC基础-----> 初始化方法

      本文链接:https://www.haomeiwen.com/subject/jliwrttx.html