---------------------------------------- android培訓、java培訓、期待與您交流! -------------------------------------
一、 類也是個對象
1、 其實類也是一個對象,是Class類型的對象,簡稱“類對象”
2、Class類型的定義
typedef struct objc_class *Class;
3、 類名就代表着類對象,每個類只有一個類對象
二、 +load和+initialize(熟記~~)
1、 +load
1)在程序啓動的時候會加載所有的類和分類,並調用所有類和分類的+load方法
2) 先加載父類,再加載子類;也就是先調用父類的+load,再調用子類的+load
3)先加載元原始類,再加載分類
4) 不管程序運行過程有沒有用到這個類,都會調用+load加載
2、+initialize
1)在第一次使用某個類時(比如創建對象等),就會調用一次+initialize方法
2)一個類只會調用一次+initialize方法,先調用父類的,再調用子類的
三、 獲取類對象的2種方式
Class c = [Person class]; // 類方法
或者Person *p = [Person new];
Class c2 = [p class]; // 對象方法
四、 類對象調用類方法
Class c = [Person class]; //使用多態的語法
Person *p2 = [c new];
---------------------------------------- android培訓、java培訓、期待與您交流! -------------------------------------