物件導向1

2021-07-10 00:13:59 字數 2153 閱讀 7739

oc中定義類需要以下兩部分:

類介面部分語法:

//@ubte***ce用於宣告定義類的藉口部分

@inte***ce

myperson : nsobject

//宣告成員變數

/*宣告方法

- + 為方法型別標識:+代表為類方法,直接用類名即可呼叫;-代表實力方法,需用物件才能呼叫

(void) 為方法返回值型別:若無返回值需要用void宣告沒有返回值

setname:(nsstring *) 為方法簽名關鍵字:由方法名 setname,形參標籤 nsstring *,冒號 : 組成

name為形參名

*/- (void) setname:(nsstring *) name andage:(int) age;

- (void) say:(nsstring *) content;

- (nsstring *) info;

+ (void) foo;

//@end表明定義結束

@end

類實現部分語法:

@implementation

myperson //與類介面部分的類同名

//成員變數宣告,此處為只能在實現部分使用的被隱藏的成員變數

//定義方法此處建議形參名與類介面部分成員變數不一致,避免區域性變數被隱藏

- (void) setname:(nsstring *) n andage:(int) a

- (void) say:(nsstring *) content

- (nsstring *) info

- (void) test //定義乙個只能在實現部分使用的方法,被隱藏的方法,此段**中 test method被info method所引用

+ (void) foo

@end

myperson* person;  //定義myperson型別的變數

person = [[myperson alloc] init] //建立myperson物件並初始化,然後賦給person

/*一般程式中只會匯入類的介面部分(*.h),所以需要如下命令來編譯該程式:

change -fobjc-arc -farmework foundation myperson.m mypersontest.m

即將程式檔案和實現部分檔案同時編譯

*/[person say:@"hello"]; //無返回值含引數的呼叫方法

[person setname:@"easer" andage:30];

nsstring* infos = [person info]; //有返回值無引數的呼叫方法

nslog(@"the info of person is: %@", infos);

[myperson foo]; //類方法的呼叫方法

適用於例項method,當method被呼叫時,self會代表這個物件

@inte***ce

myperson : nsobject

- (nsstring *) info;

@end

@implementation

myperson

- (void) setname:(nsstring *) _name andage:(int) _age

- (nsstring *) info

- (void) test

@end

myperson* person1 = [[myperson alloc] init];

myperson* person2 = [[myperson alloc] init];

[person1 info]; //此處呼叫info method時,self代表person1

[person2 info]; //此處呼叫info method時,self代表person2

id型別可以代表所有物件的型別,執行時會動態的去判斷該物件所屬的類,並在執行確定需要動態呼叫方法,而不是編譯時確定要呼叫的方法。

id p = [[myperson alloc] init];

[p say:@"hello"]; //會輸出 hello

物件導向 1

物件名列印 類名 位址值 1 從磁碟讀取class檔案,載入進方法區的class檔案區 2 將class檔案靜態的屬性和行為的載入進靜態區 3 將class檔案中私有的行為載入進方法區 4 在堆中持有方法的引用 5 讀取class檔案中的成員字段,並初始化 6 在堆中持有方法的引用 7 將這個位址賦...

物件導向1

物件導向程式設計 物件導向程式設計 object oriented programming,oop 主要針對大型軟體設計而提出,使得軟體設計更加靈活,能夠很好地支援 復用和設計復用,並且使得 具有更好的可讀性和可擴充套件性。python中物件的概念很廣泛,python中的一切內容都可以稱為物件。類定...

物件導向1

現在程式開發有兩個主流的方法 1 結構化程式設計,也叫面向過程程式設計。結構化程式設計主張以功能 步驟來進行軟體設計。2 物件導向程式設計。物件導向程式設計思想逐漸成熟起來。它使用類,物件,繼承,封裝,訊息等概念來進行程式設計。類的定義 成員變數 方法 格式語法 修飾詞 class 類名 修飾詞 返...