【构造方法】
-
在OC当中,以 init 开头的方法称为构造方法.
-
作用:
-
构造方法用于初始化成员变量的值,一般只调用一次。在类创建对象时调用,看下面的图就知道了 有 init 对吧!。
-
构造方法通常都是有返回值的哇!
[注意:] 在 [Cat alloc] 这个调用方法,很明显可以看出来[类名 类方法],即,那个alloc 是个类方法咯!
- 由于子类对象可以分为两部分:
- 1、继承自父类的部分。
- 2、子类特有的部分。
- 所以:子类在重写构造方法时需要添加一下代码:
- 构造方法通常都是有返回值 return 的哇!
【self】
上面的构造方法中使用 self。 是不是,不理解,好吧!下面介绍一下:
-
"类"内部方法相互调用需要使用self 来调用.
-
self表示当前对象地址 谁调用当前函数self就表示谁.
-
其实 self 就是一个指针嘛!
[在来回忆一下:]
- 需求: 写一个构造方法,初始化圆的半径?
- 然后,实现构造方法:
- 最后,调用构造方法。这里是不是发现苹果里封装了许多构造方法!(学过一些OC的都知道吧!)
2、[类方法:]
-
“-”开头的方法称为对象方法,”+”开头的方法称为类方法。
-
不属于任何一个对象,通过"类名"调用。例如:[Cat eat];
-
【特征】:
-
1、 类方法不能访问成员变量.---->因为 一个类可以创建无数个对象!对吧!例如: Cat *cat1 = [[Cat alloc] init]; , Cat *cat2 = [[Cat alloc] init];, Cat *cat3 = [[Cat alloc] init]; 等等。其中 cat1、cat2、cat3....就是不同的对象!
-
又因为每个类对象 是具体的事物! 既然是 具体到某个事物,那么,每个对象就有它 一套具体的不同的独一无二的 属性 或字段。
-
所以:类(太虚了)不能访问 (具体的对象)成员变量!!!
-
2、类方法不能调用对象的方法
(因为 类 没有对象,它要创建才有对象,如果创建出来了,那个叫 对象!)
网友评论