第2章 Objective - C程序設(shè)計(jì)
2.1對(duì)象與消息
2.1.1消息表達(dá)式
id類型的變量可以存放任何數(shù)據(jù)類型的對(duì)象
id? ? ? ? ?obj夺脾;
向obj 發(fā)送msg消息? ?
[obj? ? ?msg]
[obj? ? msg] 是一個(gè)消息表達(dá)式诱渤,obj(receiver)是一個(gè)對(duì)象柱查,消息 msg告訴它要去做什么鳄抒。請(qǐng)求一個(gè)實(shí)例對(duì)象執(zhí)行某個(gè)操作時(shí)佛掖,你就需要給他發(fā)送一個(gè)消息贴捡,objective-C允許嵌套消息表達(dá)式番枚,每個(gè)消息表達(dá)式的返回值都可以作為消息的receiver法严。
消息由消息關(guān)鍵字構(gòu)成,消息關(guān)鍵字的命名規(guī)則同變量命名一樣葫笼。
消息中可以帶有參數(shù)深啤,沒有參數(shù)的消息就只有消息名
2.1.2 消息選擇器
函數(shù)是通過函數(shù)名來區(qū)分的,消息則是通過消息名來區(qū)分的路星,消息名又稱為消息選擇器溯街,選擇器或者方法。
2.1.3實(shí)例變量的生成和初始化
聲明一個(gè)id類型的變量時(shí)洋丐,該變量并不指向任何對(duì)象呈昔。因此,在使用一個(gè)對(duì)象之前友绝,首先需要把內(nèi)部豐滿內(nèi)部結(jié)構(gòu)堤尾,通過調(diào)用類的構(gòu)造函數(shù)來生成對(duì)象,成為一個(gè)非空的類迁客。
Objective-C通過向類發(fā)送消息來創(chuàng)建一個(gè)對(duì)象郭宝。
[類名? ? alloc]
alloc執(zhí)行后,實(shí)例就生成了哲泊,但是這個(gè)實(shí)例是空的剩蟀,alloc只完成了對(duì)象所需要儲(chǔ)存空間的分配催蝗,但沒有進(jìn)行初始化切威。初始化對(duì)象的方法叫做初始化方法。
[????[類名? ? alloc]????init]
對(duì)象生成后只會(huì)調(diào)用一次初始化方法丙号,需要重置數(shù)據(jù)則需要寫一個(gè)reset函數(shù)
2.2類的定義
2.2.1類的接口聲明
Objective-C中的接口和實(shí)現(xiàn)是分離開的
@interface? ? 類名? ? :? ? 父類名{
? ? ? ? 實(shí)例變量的定義先朦;
}
方法聲明缰冤;
@end????//
Objective-C中所有的編譯指令都是以@開頭,和C語言的字符串作區(qū)分
Objective-C的類名首字母答謝喳魏,方法名和實(shí)例變量名都是小寫字母開頭
類名不能和變量名以及方法名相同
2.2.2類的實(shí)現(xiàn)·
@implement? ? ? ? 類名
方法的定義? ? .........
@end? ? ?//
@interface Volume:NSObject{
int val;
int min,max;
}
-? ? (id)initWithMin:(int)a? ? max:(int)b? ? step;(int)s;
-? ? (int)value;
-? ? (id)up;
-? ? (id)down;
@end//
多文件編譯棉浸,obejctive-C中的每一個(gè)類都會(huì)分成.h和.m文件,稱為接口文件和實(shí)現(xiàn)文件