【構(gòu)造方法】
在OC當(dāng)中铛碑,以 init 開頭的方法稱為構(gòu)造方法.
作用:
構(gòu)造方法用于初始化成員變量的值凿试,一般只調(diào)用一次浙宜。在類創(chuàng)建對象時(shí)調(diào)用扔枫,看下面的圖就知道了 有 init 對吧俊鱼!刻像。
構(gòu)造方法通常都是有返回值的哇!
[注意:] 在 [Cat alloc] 這個(gè)調(diào)用方法并闲,很明顯可以看出來[類名 類方法]细睡,即,那個(gè)alloc 是個(gè)類方法咯帝火!
- 由于子類對象可以分為兩部分:
- 1溜徙、繼承自父類的部分。
- 2犀填、子類特有的部分蠢壹。
- 所以:子類在重寫構(gòu)造方法時(shí)需要添加一下代碼:
- 構(gòu)造方法通常都是有返回值 return 的哇!
【self】
上面的構(gòu)造方法中使用 self九巡。 是不是图贸,不理解,好吧冕广!下面介紹一下:
"類"內(nèi)部方法相互調(diào)用需要使用self 來調(diào)用.
self表示當(dāng)前對象地址 誰調(diào)用當(dāng)前函數(shù)self就表示誰.
其實(shí) self 就是一個(gè)指針嘛疏日!
[在來回憶一下:]
- 需求: 寫一個(gè)構(gòu)造方法,初始化圓的半徑撒汉?
- 然后沟优,實(shí)現(xiàn)構(gòu)造方法:
- 最后,調(diào)用構(gòu)造方法睬辐。這里是不是發(fā)現(xiàn)蘋果里封裝了許多構(gòu)造方法D痈蟆(學(xué)過一些OC的都知道吧!)
2溉委、[類方法:]
“-”開頭的方法稱為對象方法鹃唯,”+”開頭的方法稱為類方法。
不屬于任何一個(gè)對象瓣喊,通過"類名"調(diào)用坡慌。例如:[Cat eat];
【特征】:
1、 類方法不能訪問成員變量.---->因?yàn)?一個(gè)類可以創(chuàng)建無數(shù)個(gè)對象藻三!對吧洪橘!例如: Cat *cat1 = [[Cat alloc] init]; , Cat *cat2 = [[Cat alloc] init];, Cat *cat3 = [[Cat alloc] init]; 等等跪者。其中 cat1、cat2熄求、cat3....就是不同的對象渣玲!
又因?yàn)槊總€(gè)類對象 是具體的事物! 既然是 具體到某個(gè)事物弟晚,那么忘衍,每個(gè)對象就有它 一套具體的不同的獨(dú)一無二的 屬性 或字段。
所以:類(太虛了)不能訪問 (具體的對象)成員變量G涑恰C兜觥!
2瑟押、類方法不能調(diào)用對象的方法
(因?yàn)?類 沒有對象搀捷,它要創(chuàng)建才有對象,如果創(chuàng)建出來了多望,那個(gè)叫 對象D壑邸)