標籤:聲明 實現 object-c
說明:本人用的win8 系統裝Code::Blocks練習OC。
1.類的聲明和實現的關係圖:
@interface就好像暴露在外面的時鐘錶面
@implementation就好像隱藏在時鐘內部的構造實現
2.文法中要注意的地方
(1).成員變數不能在{}中進行初始化、不能被直接拿出去訪問
(2).方法不能當做函數一樣調用
(3).成員變數\方法不能用static等關鍵字修飾,不能和C語言混在一起
(4).類的實現可用寫在main函數的後面,主要在聲明後面就行了
3.一些錯誤的寫法:
(1).只有類的聲明,沒有類的實現
(2).漏了@end
(3)[email protected]和@implementation嵌套
(4).兩個類的聲明嵌套
(5).成員變數沒有寫在括弧裡面
(6).方法的聲明寫在了大括弧裡面
4.OC方法和函數的區別
(1).OC方法只能聲明在@interface和@end之間,只能實現在@implementation和@end之間。也就是說OC方法不能獨立於類存在
(2)C函數不屬於類,跟類沒有聯絡,C函數只歸定義函數的檔案所有
(3)C函數不能訪問OC對象的成員
(4)低級錯誤:方法有聲明,但是實現的時候寫成了函數
5. OC的方法要注意的地方:
(1).方法只有聲明,沒有實現(經典錯誤)
(2).方法沒有聲明,只有實現(編譯器警告,但是能調用,OC的弱文法)
(3). 編譯的時候:訪問沒有的成員變數直接報錯,訪問沒有的方法,只是警告
6.特別要注意:
(1).冒號也是方法名的一部分
(2).同一個類中不允許兩個對象方法同名
7.代碼實踐:
#import <Foundation/Foundation.h>/*計算機類*/@interface Calculator : NSObject{ @public double num;}//計算數的平方- (double) square;- (int) sumWithnum1:(int)num1 addNum2:(int) num2;@end//計算機的實現@implementation Calculator//計算一個數的平方- (double) square{ return num * num;}//針對兩個數求和- (int) sumWithnum1:(int)num1 addNum2:(int) num2{ return num1 + num2;}@endint main(){Calculator *c = [Calculator new];//給計算機類成員變數賦值c->num = 25;//調用平方這個方法double result = [c square];NSLog(@"%.1f的平方是%.1f",c->num,result);//調用求和這種方法:int sum = [c sumWithnum1:23 addNum2:34];NSLog(@"sum=%d",sum);return 0;}
代碼:
Object-c學習筆記(1)