函數(shù)成員:描述對(duì)象的行為
-方法
-初始化器 init
-析構(gòu)器 dealloc
認(rèn)識(shí)方法
函數(shù):代碼段上的可執(zhí)行指令序列
全局函數(shù)(C語(yǔ)言)
成員函數(shù)(OC語(yǔ)言)
a 方法是類的成員函數(shù),表達(dá)實(shí)例行為或類型行為
b 所有方法默認(rèn)都是公有的方法,【沒有private或protected 只要不在頭文件聲明就可以成為私有】
c 動(dòng)態(tài)消息分發(fā):方法調(diào)用通過(guò)運(yùn)行時(shí)動(dòng)態(tài)消息分發(fā)實(shí)現(xiàn)朝氓,在對(duì)象上調(diào)用方法又稱“向?qū)ο蟀l(fā)送消息”雌贱。
實(shí)例方法或類型方法
*實(shí)例方法-表達(dá)實(shí)例行為,可以訪問(wèn)
*實(shí)例成員(實(shí)例屬性蟆融、實(shí)例變量瘦真、實(shí)例方法)
*類型方法、靜態(tài)變量
類方法-表達(dá)類型行為骄噪,訪問(wèn)權(quán)限:
可以訪問(wèn):類型方法、靜態(tài)變量
不可以訪問(wèn):實(shí)例成員(實(shí)例屬性蠢箩、實(shí)例變量链蕊、實(shí)例方法)
self指針 編譯器在背后對(duì)print做了如下不同處理:
void print(BLNPoint *self)
{
NSLog(@"%d",self.x);//self 表達(dá)實(shí)例對(duì)象的指針
}
[p1 print];//print(p1)
類方法
BLointPoint *getOrignPoint()
{
self 表達(dá)當(dāng)前的類 不表示實(shí)例
}
方法參數(shù):
如果參數(shù)類型為值類型,則為傳值方式谬泌,如果參數(shù)類型為引用類型滔韵,則為傳指針方式
方法可以沒有參數(shù),也可以沒有放回值掌实。
如果方法有參數(shù)陪蜻,方法名約定包含第1個(gè)參數(shù)名,從第二個(gè)參數(shù)名開始需要顯示提供外部參數(shù)名贱鼻。
調(diào)用時(shí)宴卖,第一個(gè)參數(shù)名忽略滋将,但后面的參數(shù)名必須顯示標(biāo)明
(駝峰命名法)
了解動(dòng)態(tài)方法調(diào)用機(jī)制-消息分發(fā)表
BLNPoint指針->methodLists->print地址 性能較低