黑馬程序員——OC有參函數聲明以及調用
------- android培訓、ios培訓、期待與您交流! ----------
1 //沒有參數有返回值方法的聲明實現及調用 2 3 //有參數有返回值方法的聲明實現及調用 4 5 #import <Foundation/Foundation.h> 6 7 @interface cacu:NSObject 8 9 { 10 11 //實例變量 12 13 @public; 14 15 int _num1; 16 17 int _num2; 18 19 } 20 21 // 22 23 -(int)sum;//一個沒有參數的方法 24 25 //有參方法的聲明 26 27 -(int)sum:(int) x and:(int) y; 28 29 @end 30 31 @implementation cacu 32 33 -(int)sum{ 34 35 //計算_num1+_num2; 36 37 return _num1+_num2; 38 39 } 40 41 -(int)sum:(int) x and:(int) y{ 42 43 return x+y; 44 45 } 46 47 @end 48 49 int main (int argc, const char *argv[]) 50 51 { 52 53 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 54 55 56 57 //在此處輸入Objective-C代碼 58 59 cacu *ca=[cacu new]; 60 61 //對象訪問實例變量 62 63 ca->_num1=12; 64 65 ca->_num2=30; 66 67 //調用無參方法 68 69 int s=[ca sum]; 70 71 NSLog(@"s=%d",s); 72 73 //調用有參方法 74 75 s=[ca sum:34 and:23]; 76 77 NSLog(@"s=%d",s); 78 79 [pool drain]; 80 81 return 0; 82 83 }
OC
****帶參數的方法的定義和實現****
聲明:
有一個參數的方法:
方法類別 (返回值類型) 方法名1:(參數類型) 參數名稱;
有兩個參數的方法
方法類別 (返回值類型) 方法名1:(參數類型1) 參數名稱1 and:(參數類型2)參數名稱2;
例:
方法的聲明:
-(int)sum:(int) x and:(int) y;
方法的實現:
-(int)sum:(int) x and:(int) y{
return x+y;
}
有參方法的使用注意:
方法類型:(-)對象方法
方法的返回值:int 類型
方法的參數:x y
參數類型:int
方法名: sum: and: (冒號是方法名的一部分)
實例變量讀寫規范:類型名 _實例變量名
有參方法的調用:
[指針變量名 方法名: 實參 and: 實參];
****函數與對象方法的區別****
對象方法:
1、對象方法的實現只能寫在@implementation...@end中,對象方法的聲明只能寫在@interface...@end中間
2、對象方法以“-”開頭,類方法以“+”開頭
3、對象方法只能由對象方法調用,類方法只能由類調用,不能當做函數一樣使用
4、函數屬於整個文件,可以寫在文件中任何位置,包括@implementation...@end中,但寫在@interface...@end會無法識別。函數聲明尅一在main函數內部,也可以在main外部
5、對象方法歸類\對象所有
函數:
1、所有函數都是平行的
2、函數不存在隸屬關系
3、使用的時候可以直接調用
4、不可以訪問對象中的變量
****常見錯誤:****
1、@interface...@end與@implementation...@end是不能嵌套使用的
2、不能只有類的聲明沒有類的實現
3、漏寫@end
4、兩個類的聲明、實現順序可以打亂的
5、成員變量沒有寫在{}中
6、方法聲明寫在{}中
7、在聲明時不能對類的成員變量進行初始化,成員變量不能脫離對象獨立存在
8、方法無法像函數一樣調用
9、成員變量和方法不能使用static等關鍵字修飾,不要與C混淆
10、類的實現可以寫在main函數之后,使用時注意聲明
