命名規則
制定名稱的規則:名稱必須以字母和下劃線開頭,之後可以是任何字母,下劃線和0~9的數字組合。
以下名稱是非法的;
1.sum$value————$是非法字元
2.piece flag————名稱中間不能有空格
3.3spencer————名稱不能以數字開頭
4.int ————int保留字
命名類的時候,類名通常以大寫字母開頭。另一方面,例項變數,物件,以及方法的名稱時,通常以小寫字母開頭。為使程式具有可讀性,名稱中要用大寫字母表示新單詞的開頭。例如:
addressbook————可能是乙個類名
currententry————可能是乙個物件
current_entry————可以用下劃線作為單詞的分隔
addnewentry————可能是乙個方法名
程式設計時要注意名稱的制定規則會大大增強程式的自解釋性。
例項和方法
類的獨特存在就是例項,對例項執行的操作稱為方法。某些情況下,方法可以應用於類的例項或者類的本身。
物件是類的獨特表示,每個物件都包含一些通常對該物件來說是私有有的資訊(資料),方法提供訪問和改變這些資料的手段。
格式為:
[receiver message]
左括號後緊跟類的名字或者該類的例項的名字,後面是乙個或多個空格,空格後面是將要執行的方法。
以分數類為例介紹oc的類,物件和方法**如下:
#import @inte***ce fraction : nsobject
-(void) print;
-(void) setnumerator:(int) n;
-(void) setdenominator:(int) d;
-(int) numerator;
-(int) denominator;
@end
@implementation fraction //可以寫成@implementation fraction:nsobject但是會有警告
//例項變數也可以寫到@inte***ce中
-(void) print
-(void) setnumerator:(int) n
-(void) setdenominator:(int) d
-(int) numerator
-(int) denominator
@end
int main(int argc, const char * argv)
return 0;
}
執行結果為:
@inte***ce部分用於描述類和類的方法,也可以在這裡為類宣告例項變數;
定義新類時,首先要告訴編譯器該類來自何處(必須以他的父類命名);並且定義處理該類的物件時的各種方法或操作的型別;還會列出一些元素,稱為屬性。
格式為:
@inte***ce newclassname:parentclassname
propertyandmethoddeclarations;
@end
類方法和例項方法
方法宣告開頭為負號(-)告訴編譯器該方法是乙個例項方法,能夠對類例項進行一些操作,可以直接訪問它的例項變數,例如設定值,檢索值。
方法宣告開頭為正號(+)告訴編譯器該方法是乙個類方法,能夠對類本身進行一些操作,不可以訪問類例項,例如建立類的新例項。
-(void) setdenominator:(int) d;
負號表示方法型別;
(void)表示返回型別
setdenominator表示方法名稱;
:表示方法有引數;
(int)表示引數型別;
n表示引數名字;
@implementation部分用於描述資料(類物件的例項變數儲存的資料),並實現在介面中宣告方法的實際**;
print引用的例項變數包含在作為作為訊息接受者的物件中;
program部分實現程式的目的
prgram可以跨越多個檔案
alloc方法繼承自乙個父類,在記憶體中為它保留足夠的空間用於儲存物件資料,返回儲存資料的位置,保證物件的所有例項變數都變成初始狀態,然而並不是說明該物件已經進行正確的初始化以供使用。
init方法用於初始化類的例項變數,init訊息傳送給類的例項而非是類,返回乙個初始化的物件。
new方法可以將alloc和init操作結合起來。
類 物件 方法
tq乙個類的析構函式 呼叫完畢之後 這個程式 還會做什麼?直接結束嗎?大家怎麼看待這個問題呢?cdc 類析構跟程式退出沒關係 應該是說 呼叫 這個類完畢 之後 還會執行該類中 相關資訊嗎?tq直接結束?stst 這個概念好混亂阿 類如何能呼叫完畢?類,物件,方法這得關係都沒理順啊 類是乙個靜態的概念...
物件方法和類方法
1.物件方法 1 減號 開頭 2 只能由物件呼叫 3 物件方法中可以訪問成員變數 例項變數 4 物件方法中可以呼叫類方法 2.類方法 1 加號 開頭 2 只能由類名呼叫 3 類方法中不可以訪問成員變數 例項變數 4 類方法中不可以呼叫物件方法 5 類方法中可以呼叫類的方法 同名的除外 3.允許有同名...
類方法和物件方法
我們就把適用於某一特定物件的方法叫做例項 方法,而把那些適用於整個類的方法叫做類方法。不過這樣做只是為了方便 對於 perl 而言,方法就是方法,只是由其第乙個引數的型別來區分。第乙個引數傳遞的是類,則叫做類方法 類裡面那些生成物件例項的方法叫構造方法,這些通常是類方法 node1 root per...