使用類或者對象的方法的語法是這樣的:
[類名/對象名 方法名]
如果涉及到參數(shù),則變成如下形式:
[類名/對象名 方法名:參數(shù)]
也可以用帶有返回值的方法給變量賦值:

The @interface Section
這實際上就是類的聲明式,它的一般形式如下所示:

在Objective-C中類名的第一個字母要求大寫。
ChoosingNames
變量還可以存儲對象,這是Objective-C的特性。
變量名可以是數(shù)字、字母、下劃線的組合,不過第一位必須是字母或者下劃線,變量名不可以是Objective-C保留字。
變量一般是以小寫字母開頭的,以后每遇到一個單詞,該單詞的首字母要大寫,這一點像JAVA的命名規(guī)范。
下面是一個@interface的示例代碼:

Objective-C也是有頭文件的,并且也是以.h結尾的,這一點和C語言是完全一致的。
Class and Instance Method

注意!在方法聲明的時候它前邊有個-號,-代表這個方法是個實例對象的方法。與此相對應方法聲明前的+代表,該方法是類方法。
所謂類方法就是對類本身進行操作的方法,比如產生一個類的實例。
而所謂實例方法就是對某實例對象本身的操作。
由此可見前者體現(xiàn)類的共性,后者體現(xiàn)類的個性。

上圖中箭頭所指之處是方法的返回值類型。
MethodArguments

紅線所示部分是參數(shù),括號中的是類型,n和d是形參,它們與方法名之間用冒號相連,整個聲明以分號結尾。
當你想引用一個有參數(shù)的函數(shù)時可以在函數(shù)名后添加冒號,這個冒號表示這個函數(shù)帶有參數(shù)。

如果沒有參數(shù)就不需要冒號。
The @implementation Section
類成員的聲明和定義形式如下:

類成員聲明的形式如下所示:

可以看出這和C++沒啥兩樣。
和實例方法一樣,它們也屬于某個實例對象,即每個實例對象都會有自己的實例成員。

方法的定義部分如上圖所示。
此外Objective-C允許使用@synthesize指令自動產生方法,這個將在第七章講到。
The program Section

書中說這是個對象,但是現(xiàn)在沒清楚地說明,只是說留到以后再解釋,我想這應該是個指針。
在Objective-C中對象空間的分配和初始化一般合在一起寫,如下圖所示:

也可以寫成這樣:

給函數(shù)傳實參的形式是這樣的:

調用成員方法的形式如下所示:

如果,在myFraction前面的*表示myFraction是個指針。
Accessing Instance Variable and Data Encapsulation
對象自己的方法可以直接訪問自己的成員,但是類的方法無法訪問,這一點和C++有很大的不同。
面向對象語言的慣用法中總有getters和setters,它們并不是語法,而是純的慣用法。
它們都是成員方法,并且都是公有的,或者說外部能直接調用的接口。正是因為這一特性,它們能夠操作私有成員,并且能返回私有成員。setters就是用來設置私有成員的,而getters則是用來獲取私有成員的。setters帶有參數(shù)沒有返回值,而getters沒有參數(shù)但有返回值。
這也是數(shù)據(jù)封裝的一個原則,必須遵守。