設定器和訪問器
我們知道。乙個鏈尾idea例項變數如果是被@protected 或者 @private所修飾,那麼我們將不能對該成員變數
進行複製,滿足了我們希望的封裝和安全。但是為了交換資訊,我們希望使用@public型別。似乎者兩者的矛盾
不可調節,這個時候我們就可以使用設定器與訪問器來解決這個問題。
例子:main.m
#import #import "student.h"
int main(int argc, const char * argv)
return 0;
}
student.h
#import @inte***ce student : nsobject
//設定器(setter) 和 訪問器(getter)
//name的設定器
-(void)setname:(nsstring *)name ;
//name的訪問器
-(nsstring *)name ;
-(void)setage:(nsinteger)age;
-(nsinteger)age;
/* 設定器與訪問器的作用:
1.隱藏了例項變數
2.控制例項變數的讀寫
3.做正確性的校驗
對於設定器與訪問器來說,其命名規則:
1.設定器:-(void) set首字母大寫的例項變數:(例項變數的返回值型別)去掉下劃線的例項變數名
2.訪問器:-(例項變數的返回值型別)去掉下劃線的例項變數名
note:
對於類的名稱,其首字母要大寫
對於變數,其首字母小寫
遵循駱駝峰命名規則
有了setter 和 getter ,我們就可以把變數都定義@protected 或者 @private型別,盡量不要使用@public型別,它的好處如下:
1.在setter中加入合法性檢查。例如判斷年齡要大於0
2.更新被設定變數相關的其他變數的值,比如年齡與年份的關係
3.可以在debug中,在setter中追蹤log
4.在多執行緒中,如果要保護物件的併發訪問,則必須在getter/setter中加入同步鎖
缺點:手動編寫麻煩
*/@end
student.m
#import "student.h"
@implementation student
//name的設定器
-(void)setname:(nsstring *)name
//name的訪問器
-(nsstring *)name
//對於age屬性來說,做正確性檢驗
-(void)setage:(nsinteger)age
else
}-(nsinteger)age
@end
Objective C 常量的設定
常量的設定,可以使用預處理巨集定義 define,還有使用 extern c 關鍵字。這裡記錄後者。h 檔案 import extern nsstring const url test 測試鏈結 m 檔案 nsstring const url test 這裡賦值 呼叫的方法 nslog url te...
Objective C語言特性
1.objective c建立在c語言之上,他是在c語言基礎上新增擴充套件而來能夠建立和操作物件的一門心的設計語言。2.objective c是ansi c的超集,可以混編c和c 3.可以在現存c編譯器基礎上實現,不需要編寫全新的編譯器。在mac系統上編寫objective c一般都使用xcode編...
OBJECTIVE C語言基礎
1.oc語言的特點 objective c,通常寫作objc,oc和較少用的 objective c或obj c,是擴充c的物件導向程式設計語言。objective c是靜態的,強型別定義的語言。只允許單根繼承 cocoa中的根是nsobject 2.常量 程式執行過程中,值不能被改變的量稱為常量。...