-----Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流!-------
一、類的聲明
注意點:類名的的命名規范:有意義、駝峰命名、首字母大寫
#import <Foundation/Foundation.h> // 類的聲明 @interface : NSObject { @public int speed; // 時速 } - (void)run; // 跑的行為 @end
1>成員變量:
interface中的大括號{}中是聲明成員變量(變量默認初始化為0)的。
@public是變量的訪問權限。
interface中大括號之外是用來聲明類方法的。
2>成員變量的作用域:
@public:任何類。
@private:類內。
@protected:類本身與子類。
3> NSObject
所有類或父類必須繼承代表具有創建類對象的能力。
二、類的實現
@implementation Car - (void) run { NSLog(@"時速為%d的車子", speed); } @end
三、創建對象
//在非ARC內存管理模式下
int main() { //創建車子對象
Car *c = [[Car alloc]init];//此處會retain一次
c->speed = 300;
[c run];
[c release];//這里需要釋放對象資源
return 0; }
四、常見錯誤
1> 只有類的聲明,沒有類的實現。
2>漏了@end。
3>@interface和@implementation嵌套。
4>兩個類的聲明嵌套。
5>成員變量沒有寫在括號里面。
6>方法的聲明寫在了大括號里面。
五、Objective-C與函數的區別
1>oc方法只能聲明在@interface和@end之間,只能實現在@implement和@end之間,歸對象和類所有(依賴於對象)。
2>函數可寫在除@interface外文件任何地方,歸文件所有(不依賴於對象)。
3>oc方法以減號或加號開頭,函數則不需要。
六、方法的定義
1>不帶參數的方法定義:
// 方法聲明 - (double)pi; // 方法實現 - (double)pi { return 3.14; }
無參數方法實例圖:方法類型可以是加號或減號
無參方法調用實例圖:
2>帶單個參數方法的定義:
// 方法聲明 - (double)square:(double)number; // 方法實現 - (double)square:(double)number { return number * number; }
帶單個參數方法的實例圖:
帶單個參數方法的調用:
3>多個參數方法的定義:
// 方法聲明 - (double)sumOfNum1:(double)num1 andNum2:(double)num2; // 方法實現 - (double)sumOfNum1:(double)num1 andNum2:(double)num2 { return num1 + num2; }
多個參數方法定義實例圖:
多個參數方法的調用:
七、方法名注意點:
1>冒號也是方法名的一部分。
2>同一個類不允許兩個對象方法同名。
八、匿名對象:
[[car new] run]; //在非ARC內存管理模式下不建議這樣使用,導致占用內存不能及時釋放。