1、oc中的點語法
點語法: 物件名.成員變數名 (點語法不是訪問成員變數,而是方法的呼叫)
它是乙個編譯器特性
點語法作用:可以替換傳統的get和set方法的呼叫
點語法的前提:
首先得先有 get和set方法
點語法實質:
呼叫get和set方法
如果點語法出現在 = 的左邊,表示設定值,相當於呼叫了set方法
p.age = 10;
替換為:[p setage:10];
如果點語法出現在 = 的右邊,表示獲取值,相當於呼叫了get方法
int age = p.age;
替換為:int age = [p age];
替換為:[p dispage:p.age];
[p dispage:[p age]];
注意:點語法實質是呼叫get和set方法,所以,如果沒有定義成員變數的get和set方法,這個時候,是不能使用點語法的。
2、@property使用、增強
1)@property 在xcode4.4之前的使用方法
(1)只是用@property作為方法的宣告『
格式:@property int age; 表示幫我們生成乙個get和set age的方法
@property int age;
-(void)setage:(int) age;
-(int)age;
//手工實現 get和set方法
-(void)setage:(int) age
-(int)age
@property int _age;
-(void)set_age:(int) _age;
-(int)_age;
@property nsstring *name;
-(void)setname:(nsstring*) name;
-(nsstring*)name;
(2)@synthesize 關鍵字
@synthesize 變數名;
自動幫我們實現對應的get和set方法
@synthesize age,_age;
@synthesize 相當於幫我們實現了下面的方法
-(void)setage:(int) age
-(int)age
@synthesize name;
(3)@synthesize name = _b;
@property nsstring *name;
@synthesize name; // get和set方法設定的是 name的值
@synthesize name = _b; //相當於操作_b的值
-(void)setname:(nsstring *) name
-(nsstring *)name
注意:在4.4之前,@property和@synthesize成對出現
2)@property 在xcode4.4之後(@property增強)
增強使用:
@property int score;
1).h檔案中 幫我們宣告 setscore(setter) 和 score(getter)方法
2).m 中幫我們生成 _score的私有變數(在外部不能訪問,不能被子類繼承)
3).m 中幫我們實現 get和set方法
3、@synthesize的使用
4、動態型別&id型別
動態型別:程式在執行的時候,才能確定物件屬於什麼型別
靜態型別:程式編譯的時候,就確定了物件的型別
動態型別的體現: 多型,父類指標可以指向子類物件
nsobject 是所有類的基類
nsobject *obj = [dog new];
obj = [person new];
父類呼叫子類特有的方法
[(person *)obj eat];
//id型別,id型別又被稱為 萬能指標。
id obj; //執行時檢查
obj = [car new];
[(car*)obj stop];
5、動態型別檢測的方法
7個方法
1)物件所屬關係判斷
物件是否是指定類或者子類的例項物件
iskindofclass
物件是否是指定類的例項物件
ismemberofclass
類是否是另外乙個類的子類
issubclassofclass
2)判斷能否響應方法
物件是否能夠響應方法
類是否能夠響應方法
類去響應方法
3)響應方法
傳引數6、構造方法的使用
[person new];
-> [person alloc]; //空間申請完後,不能立即使用,有可能會導致意想不到的錯誤
-> [[person alloc] init];
[person new]; 會把我們的成員變數的值,預設的設定為0
init 是我們oc類的乙個構造方法
構造方法是類建立的時候,預設呼叫的
init 是繼承自 nsobject 的
在子類中通過重寫父類的init方法,指定成員變數初始化值
init方法的固定格式:
-(id)init
//返回
return self;
}7、自定義構造方法
如果要指定成員變數值的初始化,需要自定義構造方法
1)一定是物件方法
2)返回值 一般是 id型別
3)一定是以initwith開頭
-(id)initwithname:(nsstring *) name
//返回
return self;
}
《OC瘋狂講義》筆記(三)
1 類方法 1 什麼是類方法 物件方法 返回值型別 方法名 形參的型別 形參名 類方法 返回值型別 方法名 形參的型別 形參名 2 類方法怎麼去定義 返回值型別 方法名 形參的型別 形參名 3 類方法的使用 呼叫 物件方法 物件名 方法名 實參 類方法 類名 方法名 實參 4 使用類方法的好處 1 ...
C語言瘋狂講義 (五)C語言迴圈語句
1 迴圈控制 迴圈是程式語句的一種結構,當條件滿足的時候,一直重複執行某一段 當條件不滿足的時候,需要退出迴圈 正常情況下,夠成迴圈結構三個要素 1 迴圈結束的條件 2 得有迴圈體 3 有乙個操作可以讓迴圈條件為假 2 while迴圈 當型迴圈 當 滿足時候,然後.格式 while 表示式 計算機首...
python瘋狂講義筆記(列表元組和字典)
python內建的 三種常用資料結構 列表 list 元組 tuple 和 字 典 dict 列表和元組比較相似,它們都按順序儲存元素 每個元素都有自己的索引,因此列表和元組都可通過索引訪問元素 二 者的 區 別 在 於元組是不可修改的,但列表是可修改的 字典則以 key value的形式儲存資料 ...