(三)具體的來講.h與.m檔案
在.h裡的@inte***ce與@end之間在乙個大括號裡建立類的例項變數
nsstring *_name;
nsstring *_gender;
nsstring *_hobby;
int _age;// 基礎型別不用加*,oc裡的自定義型別都需要加*,與指標類似
.h檔案裡方法的宣告:
上次說到了減號開頭的是例項方法,加號開頭的是類方法
- (void)go;
+ (void)eat;
函式名前面的小括號裡是函式的返回值型別,後面也可以跟若干個引數,不過引數一定要有冒號
例:引數名前也要註明引數型別
.m檔案裡方法的實現:
- (void)go
+ (void)eat
在main檔案裡呼叫:
person *person = [[person alloc] init];
[person go];// 例項方法
[person eat];// 類方法
(四)例項變數的三種可見度:
@public:例項變數可以在外部或內部使用
@protected:例項變數是能在本類或它的子類中使用
@privaty:只能在本類中使用
例項變數的賦值與取值的方法(set與get):
- (void)setname:(nsstring *)name; // set後面緊跟你的例項物件名字(首字母大寫,省略_),還要有乙個傳遞的引數
- (nsstring *)getname;// get方法命名規則也是一樣,不過沒有引數
- (void)setname:(nsstring *)name// setter設定器
- (nsstring *)getname// getter訪問器
每一對setter與getter對應乙個例項變數
main:
person *person = [[person alloc] init];
[person setname:@"李四"];
[person getname];
nslog(@"%@", person->_name);
自定義初始化方法:
- (instancetype)initwithname:(nsstring *)name;
- (instancetype)initwithname:(nsstring *)name
main:
child *child = [[child alloc] init];
[child initwithname:@"李子"];
類的組合使用:
要引用某個類就得引入標頭檔案,而這個類如果被別的類引入了並且在引用的類裡建立了例項物件,被引用的類就要在自己的@inte***ce前加上乙個@class後面緊跟引用它的類名。避免了類的迴圈匯入問題,否則編譯器報錯。
我學習Object C中的收穫總結(五)(六)
五 類的繼承能夠大大簡化 公共的方法與例項變數寫在父類裡,子類只寫自己特有的。並且oc裡沒有多繼承,只能單繼承。多級繼承之後,執行方法時是現在本類中找,沒有就在父類中找,逐級向上。子類重寫父類的方法了又想呼叫父類的這個方法,用super呼叫。例 super 父類方法 遍歷構造器 它是乙個加號方法,封...
我的最大收穫
我的最大收穫 左直拳功夫大師李小龍在他自傳性質的文章中曾經說,這輩子最大的收穫不是在功夫上,也不是在電影或電視上,而是娶到了一位好太太。她人很賢惠,處處遷就丈夫,每天李小龍下班回家,甚至可以幫他脫鞋子。李小龍是我的偶像。對他說的這一點,我也感同身受。真幸運。我跟老婆結婚已經快7年了。生活上,我被照顧...
我的最大收穫
我的最大收穫 左直拳功夫大師李小龍在他自傳性質的文章中曾經說,這輩子最大的收穫不是在功夫上,也不是在電影或電視上,而是娶到了一位好太太。她人很賢惠,處處遷就丈夫,每天李小龍下班回家,甚至可以幫他脫鞋子。李小龍是我的偶像。對他說的這一點,我也感同身受。真幸運。我跟老婆結婚已經快7年了。生活上,我被照顧...