定義類
oc中描述類需要2個檔案。
類名.h 標頭檔案(定義變數,類名)
類名m實現 (實現方法)
.h中的格式
@inte***ce 類名:父類 //:為繼承表示。
// 此處定義方法宣告
@end
變數宣告
型別 變數名;
@private
只能在類內部訪問
@protected
只能在類內部和子類中訪問(預設)
@public 全域性都可以訪問
@package(同乙個框架中可以訪問,不常用,可以忽略)
例如:
@private
int age_private;
int height_private;
@public
int age_public;
int height_public;
方法宣告
方法格式:
-/+ (返回型別)方法名:(引數型別1)引數名1:方法名:(引數型別2)引數名2。。。; // (冒號結束)
例如:
-(void)setage:(int)newage; // 動態方法 返回void 方法名:setage: 引數型別 int 引數名 newage
- (void)setage:(int)newage andheight:(float)newheight;// 動態方法 返回void 方法名:setage:andheight :引數型別1 int 引數名1 newage 引數型別2 int 引數名2 newheight
-(int)height;// 動態方法 返回int 方法名height 無引數。
一定要記住:乙個冒號:對應乙個引數,而且冒號:也是方法名的一部分
建構函式宣告;
例如;
-(id)initwithage:(int)age andheight:(int)height;
一般返回值是id 意思為能返回任何型別。id中已經包含了指標表示*,所以不用再加*來定義
其實不以init開頭也可以,其他符合方法名規範的名字都行,不過。根據oc中的建構函式定義規範,一般都以init開頭。
.m 方法的實現。
關鍵字
@implementation 類名 // 此處可以不跟父類。因為已經在.h中宣告了。
//方法實現,如果在.m檔案中,只有方法實現,而沒有在.h中定義,則是私有方法。
/* @implementation中實現方法。
可以使用.h中定義的_age變數是因為匯入了student.h標頭檔案
*/@end
方法格式:(類似.h中的定義,不過去掉;要有{}定義方法體)
-/+ (返回型別)方法名:(引數型別1)引數名1:方法名:(引數型別2)引數名2。。。
注意事項:在set方法中千萬不要使用self.變數。
例如:
-(void)setage:(int)newage
實現構造方法:(模版)
-(id)initwithage:(int)age andheight:(int)hegith
return self;
}
常用:.m中重寫父類的description方法,實現自定義格式化物件的輸出
self 在物件方法中,代表,物件。在類方法中代表類:
OC新語法總結
1.方法與順序無關 2.列舉繫結資料型別 enum typedef nsuinteger language 3.屬性不用寫 synthesize 4.語法簡化 4.1 nsnumber nsnumber value value 12345 value 123.45f value 123.45 val...
語法基礎 簡單的oc程式
作為菜鳥不知道從 找到的一些資料先寫下,先介紹一些oc語言的一些特點。1 在c語言的基礎上,增加了一層最小的物件導向語法 2 完全相容c語言 3 可以在oc 中混入c語言 甚至是c 4 可以使用oc開發mac os x平台和ios平台的應用程式 首先,要執行乙個oc程式必須經過原始檔經過編譯成目標檔...
OC中語法糖,最新語法總結
1.方法與順序無關 2.列舉繫結資料型別 enum typedef nsuinteger language 3.屬性不用寫 synthesize 4.語法簡化 4.1 nsnumber nsnumber value value 12345 value 123.45f value 123.45 val...