构造方法 和 类方法

【构造方法】

  • 在OC当中,以 init 开头的方法称为构造方法.

  • 作用:

  • 构造方法用于初始化成员变量的值,一般只调用一次。在类创建对象时调用,看下面的图就知道了 有 init 对吧!。

  • 构造方法通常都是有返回值的哇!

构造方法用来初始化成员变量.png

[注意:] 在 [Cat alloc] 这个调用方法,很明显可以看出来[类名 类方法],即,那个alloc 是个类方法咯!

  • 由于子类对象可以分为两部分:
  • 1、继承自父类的部分。
  • 2、子类特有的部分。
  • 所以:子类在重写构造方法时需要添加一下代码:
  • 构造方法通常都是有返回值 return 的哇!
构造方法 init.png

【self】

上面的构造方法中使用 self。 是不是,不理解,好吧!下面介绍一下:
  • "类"内部方法相互调用需要使用self 来调用.

  • self表示当前对象地址 谁调用当前函数self就表示谁.

  • 其实 self 就是一个指针嘛!

[在来回忆一下:]

  • 需求: 写一个构造方法,初始化圆的半径?
设计一个构造方法.png
  • 然后,实现构造方法:
在构造方法里初始化成员变量半径 r.png
  • 最后,调用构造方法。这里是不是发现苹果里封装了许多构造方法!(学过一些OC的都知道吧!)
调用构造方法.png

2、[类方法:]

  • “-”开头的方法称为对象方法,”+”开头的方法称为类方法。

  • 不属于任何一个对象,通过"类名"调用。例如:[Cat eat];

  • 【特征】:

  • 1、 类方法不能访问成员变量.---->因为 一个类可以创建无数个对象!对吧!例如: Cat *cat1 = [[Cat alloc] init]; , Cat *cat2 = [[Cat alloc] init];, Cat *cat3 = [[Cat alloc] init]; 等等。其中 cat1、cat2、cat3....就是不同的对象!

  • 又因为每个类对象 是具体的事物! 既然是 具体到某个事物,那么,每个对象就有它 一套具体的不同的独一无二的 属性 或字段。

  • 所以:类(太虚了)不能访问 (具体的对象)成员变量!!!

  • 2、类方法不能调用对象的方法
    (因为 类 没有对象,它要创建才有对象,如果创建出来了,那个叫 对象!)

总结:

(1)类方法可以用于创建对象或简洁地创建对象.。 开发中能用类方法就尽量用!效率高!
(2)一个功能模块,可以通过类方法,公开简单易用的对外接口。(这个要有一定的编程量才能体会得到)
(3)创建单例对象,单例对象可以用于传值。或者创建某个对象太耗费资源又经常使用时,也会创建单例对象。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容