oc類的實現

2021-10-02 21:30:22 字數 2258 閱讀 2696

oc方法的簽名:

方法簽名由多部分組成,每一部分簽名都說明引數含義,所以方法的簽名具有自說明性,例如:

-

(void

)setname:

(nsstring*

)aname age:

(int

)aage

方法簽名為setname:age:

說明這個方法是用來設定姓名和年齡的,具有兩個引數

-

(void

)setname:

(nsstring*

)aname :

(int

)aage

方法不能過載

在同乙個類的方法不能過載,即方法的簽名不能完全一樣,但類方法和例項方法簽名可以相同。

-

(int

) g:

(int

) x;-(

int) g:

(float

) x;

//error:this mothod is not differernt from the previous one(no label)-(

int) g:

(int

) x:

(int

) y;

//ok,two anonymous labels-(

int) g:

(int

) x:

(float

) y;

//error:not different from the previous one-(

int) g:

(int

) x andy:

(int

)y;//ok:second label is "andy"-(

int) g:

(int

) x andy:

(float

) y;

//error:not difference from the previous one-(

int) g:

(int

) x andalsoy:

(int

)y;//ok:second label is "andalsoy",different from "andy"

類的定義
#import

ns_assume_nonnull_begin

@inte***ce asstudent : nsobject

//"+"號為類方法,可以直接用類名來呼叫,作用是建立乙個例項+(

void

)print;

//"-"號為例項方法,類的例項才可以呼叫

-(nsstring*

)name;

-(nsstring*

)setname:

(nsstring*

)aname;-(

int)age;-(

void

)setage:

(int

)aage;

@end

ns_assume_nonnull_end

類的實現
#import "asstudent.h"

@implementation asstudent-(

void

)setname:

(nsstring*

)aname

-(nsstring*

)name-(

int)age-(

void

)setage:

(int

)aage+(

void

)print

@end

這裡有兩個地方是需要注意的

例項方法可以直接引用類的例項變數和其他例項方法

類的方法都是public的,沒有protected和private方法,但是如果乙個方法只出現在類的視線裡,沒有出現在類的宣告裡,那麼這個方法可以認為是私有方法。

類的例項化

asstudent* student =

[[asstudent alloc] init]

; student->age =20;

[student setname:

@"tom"];

nslog

(@"%@"

,[student name]

);

OC語言 類方法的實現

類方法的實現 設計乙個 計算器 calculator 類 實現兩個數的 四則運算 思路 首先建立乙個類 類名 calculator 屬性 第乙個數num1,第二個數num2,運算結果result 行為 加 add,減 jian,乘 cheng 除 chu 建立好乙個target 按照oc多檔案開發的...

IOS之路 用oc實現類

用oc實現類 import 引入標頭檔案 inte ce fraction nsobject inte ce 用於描述類和類的方法 void print void setnumber int n void setsenumber int n end implementation fraction i...

OC學習筆記 OC中的類

1.objc跟c的區別與聯絡 首先 objc是乙個物件導向的語言 封裝 繼承 多型 objc相當於c的乙個超集 即objc允許使用任何c語言 但增加了許多c沒有的特點 bigger easier 2.objc中的類與物件 類由介面 xx.h inte ce 和實現 xx.m implementati...