物件導向基礎

2021-09-12 02:31:33 字數 1877 閱讀 9133

4.6 全域性變數、區域性變數、成員變數的區別

4.7 函式和方法的區別

4.8 常見錯誤

物件導向

類的使用主要分為以下幾個步驟

實現類

建立物件

使用物件呼叫屬性和行為(方法)

oc中使用以下**宣告類

// nsobject 是為了讓我們的iphone類具備建立物件的能力

@inte***ce iphone : nsobject

// oc類宣告中屬性只能寫在 @inte***ce 和 @end 直接的大括號中,編寫oc類屬性時,建議將所有屬性的名稱前面都加上_

// 行為

/*行為沒有引數,不需要寫(),在oc中,括號有特殊用途,括號中主要放資料型別

- 表示物件方法 + 表示類方法

*/// 沒有返回值,沒有引數

- (void)about; // - 表示物件方法 + 表示類方法

// 有返回值,沒有引數

- (char *)loadmessage; // 讀取簡訊息

// 有返回值,有引數

- (bool)call:(int)number; // 打**

// 有返回值,有多個引數

- (bool)sendmessage:(int)number :(char*)message; // 發簡訊

@end

使用以下**實現類,實現類的時候需要實現宣告類中的行為,不需要實現類屬性

@implementation iphone

// 行為的實現

- (void)about ;

- (char *)loadmessage

- (bool)call:(int)number

- (bool)sendmessage:(int)number :(char *)message

@end

在oc中想要通過乙個類建立物件,必須給類傳送乙個訊息:[類名稱/物件名稱 方法名稱];

只要通過乙個類呼叫類的new方法,也就是給類傳送乙個叫做new的訊息之後,系統內部就會做3件事:

iphone *iphone = [iphone new];
oc中的類其實本質就是乙個結構體,所以iphone這個指標其實就是指向了乙個結構體,可以使用指標名稱->屬性名訪問

nslog(@"iphone->_cpu --> %i", iphone->_cpu);      // iphone->_cpu --> 0

iphone->_cpu = 10;

nslog(@"iphone->_cpu --> %i", iphone->_cpu); // iphone->_cpu --> 10

// 呼叫物件方法

[iphone about]; // 型號: 0.000000, cpu: 10, size: 0.000000, color: 0

char *msg = [iphone loadmessage];

nslog(@"%s", msg);

int number = 123;

bool flag = [iphone call:number];

if (flag)

[iphone sendmessage:123456 :"快來上班吧"];

4.5.1 類方法的應用場景

如果方法中沒有使用到屬性(成員變數),那麼能用類方法就用類方法。類方法的執行效率比物件方法高

類方法一般用於定義工具方法

4.6.1 全域性變數

4.6.2 區域性變數

4.6.3 成員變數4.7.1 函式

4.7.2 方法

物件導向基礎

什麼是物件導向程式設計?就是把萬事萬物都抽象成為物件,一切都是物件!什麼是抽象?抽象是從眾多的事物中抽取出共同的 本質性的特徵,而捨棄其非本質的特徵。例如蘋果 香蕉 生梨 桃子等,它們共同的特性就是水果。得出水果概念的過程,就是乙個抽象的過程。要抽象,就必須進行比較,沒有比較就無法找到在本質上共同的...

物件導向基礎

我想在這個園子裡面的新人,還是 掌門人 都對 物件導向 這幾字非常的耳熟了或者有一定的了解。但當乙個初學都在學習物件導向的時候,會遇到一些瓶頸和麻煩,認為物件導向非常的難以理解。那麼本章節主要是讓大家了解物件導向,並系統地掌握物件導向程式設計的技能點,消除初學者的疑惑.1 如何去學習物件導向的程式設...

物件導向基礎

uml是一種標準的圖形化建模語言,是物件導向分析與設計的一種標準表示 類圖是用來描述類以及類與類之間關係的一種uml圖 類圖描述的關係包括關聯,範化,依賴,實現等 只要類與類之間存在關聯關係就可以用普通關聯來表示 比如 描述人和計算之間的關係 帶 的一端表示關聯的發起方,箭頭表示關聯的方向 0.1 ...