OC之02類與對象04對象行為與方法與函數(shù)參數(shù)


對象的行為

我們稱對象的行為叫做方法。方法:方法名、參數(shù)、返回值(聲明、實現(xiàn))

注意:1、方法的聲明放在@interface與@end之間

? ? ? ? ?2、方法的聲明不能寫在大括號里面

? ? ? ? ?3、不必寫上大括號、直接在行為后面寫上分號

? ? ? ? ?4、只要你所定義的方法是對象方法(行為)就必須是已建好開頭

? ? ? ? ?5、OC方法中任何數(shù)據(jù)類型都必須用小括號括住

下面我就將一段寫好的代碼以圖片的形式呈現(xiàn)給大家:

這一段代碼就是方法的聲明

其中- (void)run;就是方法的聲明 注意書寫規(guī)范就是在減號與括號之間要有空格鍵個開


這一段就是方法的實現(xiàn)

當然我們只是演示一下效果以后可能在方法的實現(xiàn)中插入動畫。

方法與成員變量

方法就是謀個對象的行為,而成員變量是我們對象的屬性。

方法是寫在大括號外面的,成員變量是寫在大括號里面的

方法是必須要有聲明與實現(xiàn)的,成員變量是不需要的

對象簡單的內(nèi)存分析

在使用類創(chuàng)建對象之前,類在我們內(nèi)存中也會占據(jù)我們的存儲空間,該存儲空間是用來放置一些方法的,而且這些方法只會被編譯一次

每個對象中都有一個自帶指針isa,而這個指針的 作用就是,指向他所對應的類。

當我們使用我們自定義的之后怎去調(diào)用該對象的某一個方法時,這個isa指針就會去調(diào)用它所對應的類的方法。

注意:成員變量是每一個對象所獨有的,而我們的方法也是獨有的

對象與函數(shù)參數(shù)

OC方法中與函數(shù)由于有很大的區(qū)別

OC中的對象不會自動回收的

這是關(guān)于兩個的區(qū)別

在以后我們會詳細講他們的區(qū)別

當我們只執(zhí)行test函數(shù)的時候,我們不會改變我們對象里面的方法值的,

只有我們運用指針的時候才會改變我們對象里面的方法值

在上面的函數(shù)中,當我們的函數(shù)調(diào)用完畢是,會自動消除函數(shù)調(diào)用時分配的存儲空間

這是我們將函數(shù)調(diào)用完時,內(nèi)存的存儲情況

當我們的test2函數(shù)調(diào)用完時,他不會將第一個對象的值改變,而是有創(chuàng)建了一個新的對象,并且賦值

常見錯誤

這個圖是蘋果官方給出的圖樣,這個圖充分說明了,@interface與@implementation之間的關(guān)系


2、方法的實現(xiàn)只能寫在@implementation中,其他任何地方都不能寫

3、方法聲明必須寫在@interface里

4、在OC中不允許我們一開始就給成員變量賦值所以下圖是錯誤的

5、不能雖百年將成員變量當做C語言中的變量來使用

6、類的聲明必須放在前面,類的實現(xiàn)可以放在后面。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容