標籤:
OC方法的聲明與實現
oc方法的聲明在@interface中 大括弧外@end上面
oc方法的實現在@implementation 中@end上面
OC方法中,一個參數對應一個冒號
方法名:
例 fangFaMing:(冒號也是方法名的一部分)
-傳回值類型 方法名:參數名:(參數類型)參數 參數名:(參數類型)參數 ;
例 -(int)fangFaMing:sumWithNum1:(int)num1 andNum2:(int)num2;
??此處空格
易犯錯誤
1.唯寫聲明,不寫實現
2.將@end這個結束標記丟了
3.類的聲明或實現都不能寫在c的函數中
4.屬性的聲明必須寫在大括弧當中
5.在聲明屬性的時候,不能直接賦值
6.聲明與實現不能嵌套
7.方法的聲明只能寫在大括弧下面,@end上面
8. ‘-[Person run]: unrecognized selector sent to instance 0x100109c80‘ 就是對象沒有找到run這個方法
9.建立一個類的時候一定要寫上:NSObject,這樣這個類才具有建立對象的能力。
總結
@import <Foundation/Foundation.h>
//類的聲明
@interface Iphone : NSObject//使類就有建立對象的能力
{
@public
int _model;//型號
}
//方法分成兩種:對象方法和類方法
//注意對象方法
//1.對象方法以-開頭,2.所有的資料類型都要放在()當中,且只有資料類型要放在()裡面3.方法名遵循駝峰原則 4.如果是沒有參數的方法,方法名後面什麼都不用寫 5.如果是有參數的方法,一個參數對應一個:,冒號屬於方法名的一部分 6.一般oc當中都會把方法名寫的像句子一樣,做到見名知意。
//無參無傳回值
-(void)lookMyPhone;
//無參有傳回值
-(char *)receiptMessage;
//有參無傳回值
-(void)sendMessage:(char *)message toPhoneNumber:(char *)number;
//有參有傳回值
@end
//類的實現
@implementation Iphone
-(void)lookMyPhone{
NSLog(@"型號是%i",_model);
}
-(char *)receiptMessage{
return "hello";
}
-(void)sendMessage:(char *)message toPhoneNumber:(char *)number{
NSLog(@"你在給%s,發送%s",number,message);
}
@end
int main(int argc, const char * argv[])
{
//oc當中的對象可以作為另一個對象的成員變數。通過誰屬於誰來判斷,如果放進語境當中,符合人們的習慣,前面的就是後面的成員變數。
//1.開闢儲存空間 2.初始化成員變數(整數初始化為零,oc當中的對象作為成員變數時初始化為空白(nil)3.返回空間的地址
Iphone *iphone1 = [Iphone new];
//給成員變數賦值
iphone1->_model = 2;
//建第二個對象
Iphone *iphone2 = [Iphone new];
iphone2->_model = 5;
//總結:1.一個類可以有多個對象,對象之間互不影響
//2.一個對象的成員變數或對象方法,只能通過指標來調用。
//3.一個對象的成員變數或方法,只能由本類或對象來調用。
return 0;
}
Objective-C( 三方法的聲明與實現)