oc的第五天

   點語法與構造方法 
1,點語法
1.所謂的點語法就是通過對象名.去掉下劃線的實例變量
點語法是編譯器的特性,
編譯器遇到點語法時就會自動把點語法替換成set/get的方法
2.調用首先是創建一個對象
指針 . 實例變量 =賦值
注意: 

千萬不要把點語法看做是訪問類的實例變量

點語法的根本基礎 setget方法,如果沒有setget方法,將不能使用點語法。

在set方法中不能使用self.XX=XXX;不然會造成無線循環
在get方法中也不能使用返回self .xxx;

2,關鍵字的使用

1,@property就是關鍵字來代替在.h文件中的set,get

格式;

@property  類型   實例變量名

@property int   age;
同種類型可以用逗號
實例變量必須是下劃線開頭才能被子類繼承
2,@synthesize 就是來代替set,get方法的只在.m文件中
格式;
@stnthesize 實例變量
3,重新實現get,set方法就是在.m函數中再寫一遍是、set的格式就是手動實現
但是set和get只能出現一個,實現其中一個
4,id的使用
nsobiect可以指向任何對象,可以調用子類的方法 但是需要強轉一下

id 類型,可以使用 id類型,定義變量,變量的特點:萬能指針

id 類型的作用,它可以指向任何對象,動態的給id變量賦值

不足:在編譯的時候,無法確定是否能夠響應這個方法

id 就是一個類型的  萬能類型
  id  指針類型
指針類型 =[類   new];
[指針  行爲 ];

4構造方法
1,就是給對象進行初始化的方法
就是init 初始化對象默認的初始化爲0
重寫構造方法的目的就是
創建完成後會有一些默認的值
2,爲什要初始化父類

    // 子類繼承了父類

    // 當子類重寫了父類的方法以後,子類調用init方法的時候

    //                        只調用子類的init,不掉要父類的init

    // 爲了保證父類正常的初始化完成,子類先讓父類初始化

//    self = [super init];  //初始化父類



    //疑問2:爲什麼要給self 重新賦值

    // 1) 父類初始化的時候,有可能release self指向的空間(可能性非常小

    //    如果釋放掉空間了 self = nil

    //    問題:父類進行初始化怎麼能夠釋放掉 self指向的空間

    //         父類中的self 和子類中的 self 指向的時同一個空間

    

格式:if (self =[super  init ]){

初始化子類的東西

}
return  self

        返回self ----> alloc 完成的那個對象

  



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章