標籤:
知識點
1.類的介紹
類是對象的類型,對象是類型的執行個體。
執行個體變數:用來區分同一類的不同對象,是描述對象用的。執行個體變數可以是各種類型:基礎資料型別 (Elementary Data Type)、指標、複合類型、其他類。
執行個體方法:用來操作一個類的對象的函數,執行個體方法是給外部的提供者。
在OC中,使用#import包含標頭檔。防止標頭檔被重複包含。
2.類的聲明
@interface className:parentClass<protocol,..>
{
}
method declarations //方法的聲明
@end
3.方法的聲明:
mType(returnType)name:(type)param name1:(type1)param1….
方法類型 傳回值類型 標籤名 參數類型 參數與名字
例子:-(id)initWithX:(int)_x andY:(int)_y;
對象方法:-號開頭,只能由對象來調用,對象方法中能訪問當前對象的執行個體變數。
類方法:+號開頭,只能由類來調用,類方法中不能訪問執行個體變數。
4.訊息機制
OC中發送訊息的一般格式:[receiver message];
[執行個體對象 執行個體方法];
[類 類方法];
5.屬性聲明
聲明property的文法為:@property(參數1,參數2) 類型 名字;
例子:@property(nonatomic, retain) Circle *circle;
其中參數主要分為三類:
讀寫屬性:(readwrite/readonly)
setter語意:(assign/retain/copy/strong/weak)
原子性:(atomic/nonatomic)
各參數意義如下:
readwrite:產生setter/getter方法;
readonly:只產生getter方法;
assign:預設類型,setter方法中執行個體變數直接賦值,不進行retain操作,主要操作基礎資料型別 (Elementary Data Type)。
retain:淺拷貝,對對象的記憶體位址的複製,讓目標對象指標和來源物件指向同一片記憶體空間。
copy:深拷貝,拷貝對象的具體內容到一塊新開闢的空間。
strong:arc中的新屬性,類似retain,多個指標指向同一塊記憶體時,只要有一個指向該記憶體,那麼記憶體就不會被釋放。
weak:arc中的新屬性,類似assign,多個指標指向同一塊記憶體時,只要有一個不指向該記憶體,那麼記憶體就會被釋放。
nonatomic:禁止多線程,提高效能。
atomic:在使用多線程時,為了防止兩個線程相互等待對方導致死結,用atomic,但是會消耗一定資源。
Objective-C中類和對象的介紹