一.物件導向和面向過程的思想(對比)
oc是物件導向的,c是面向過程的。物件導向和面向過程只是解決問題的兩種不同思想
1) 以用電腦聽歌為例子
a) 面向過程
ø 開啟電腦
ø 關閉電腦
b) 物件導向(不是相親的「物件」)
ø 電腦
開機
關機 區別分析
面向過程關注的是解決問題需要哪些步驟;物件導向關注的是解決問題需要哪些物件
二.類和物件關係
物件導向中有2個非常重要的概念:類和物件
1) 物件導向解決問題的時候必須有物件,那如何建立物件呢?
2) 現實生活的例子:如何創造汽車物件?
a) 需要先有汽車的建造圖紙,圖紙上描述清楚汽車應該具備的屬性和功能(行為)
ø 屬性:輪子數、時速
ø 功能(行為):跑
b) 然後再根據圖紙上的描述生成汽車
c) 每一輛汽車都是物件,都有自己具體的屬性值,都是圖紙的例項
d) 圖紙是抽象的,房子是具體的。圖紙是對房子物件的高度概括
2. oc中的面相物件
1) oc中的類相當於圖紙,用來描述一類事物。也就是說,要想建立物件,必須先有類
2) oc利用類來建立物件,物件是類的具體存在
因此,物件導向解決問題應該是先考慮需要設計哪些類,再利用類建立多少個物件
三.宣告和定義類及方法的呼叫
類名:car
屬性:輪胎個數、時速(速度)
行為:跑
// 因為使用了nsobject
#import
// 完整地寫乙個函式:函式的宣告和定義(實現)
// 完整地寫乙個類:類的宣告和實現
// 1.類的宣告
// 宣告物件的屬性、行為
// : nsobject 目的是:讓car這個類具備建立物件的能力
@inte***ce car : nsobject
// 方法(行為):方法名、引數、返回值(宣告、實現)
// 只要是oc物件的方法,必須以減號-開頭
// oc方法中任何資料型別都必須用小括號()擴住
// oc方法中的小括號():括住資料型別
- (void)run;
@end
// 2.類的實現
// 用來實現@inteface中宣告的方法
@implementationcar
// 方法的實現(說清楚方法裡面有什麼**)
- (void)run
@end
int main()
*.注意錯誤方法
1.物件方法都是以減號-
2.物件方法的宣告必須寫在@inte***ce和@end之間
物件方法的實現必須寫在@implementation和@end之間
3.物件方法只能由物件來呼叫
4.物件方法歸類\物件所有
函式1.函式能寫在檔案中的任意位置(@inte***ce和@end之間除外),函式歸檔案所有
2.函式呼叫不依賴於物件
3.函式內部不能直接通過成員變數名訪問某個物件的成員變數
@inte***ce car : nsobject
- (void)run;
- (void)fly;
@end
四.方法及實現
#import
計算器類
方法:1> 返回 π
2> 計算某個整數的平方
3> 計算兩個整數的和
@inte***ce jisuanqi : nsobject
// 方法名:pi
- (double)pi;
// oc方法中,乙個引數對應乙個冒號
// 方法名:pingfang:(冒號也是方法名的一部分)
- (int)pingfang:(int)num;
//- (int)sum:(int)num1 :(int)num2;
// 方法名:sumwithnum1:andnum2:
- (int)sumwithnum1:(int)num1 andnum2:(int)num2;
//- (int)sumwithnum1:(int)num1 andnum2:(int)num2 andnum3:(int)num3;
@end
@implementationjisuanqi
- (double)pi
- (int)pingfang:(int)num
//- (int)sum:(int)num1 :(int)num2
- (int)sumwithnum1:(int)num1 andnum2:(int)num2
@end
int main()
五.匿名物件
@inte***ce car : nsobject
- (void)run;
@end
@implementationcar
- (void)run
@end
int main()
黑馬程式設計師 OC 類和物件
類名 car 屬性 輪胎個數 時速 行為 跑 因為使用了nsobject import 完整地寫乙個函式 函式的宣告和實現 完整的寫乙個類 類的宣告和實現 類的宣告 宣告物件的屬性 行為 nsobject 的目的是 讓car這個類具備建立物件的能力 inte ce car nsobject 用來宣告...
黑馬程式設計師 OC之類和物件
類 類是抽象的 物件 物件是具體 ios培訓 android培訓 期待與您交流!1 設計乙個類的步驟 1 類名,2 屬性,3 行為 功能 1 擁有相同屬性和行為的類都可以抽象出乙個類 2 設計乙個植物大戰殭屍中的殭屍 1 類名 zoombie 2 屬性 life speed gongjili 3 行...
黑馬程式設計師 OC 物件導向
物件導向和面向過程的區別 面向過程關心的是解決問題需要哪些步驟。物件導向關注的是解決問題需要哪些物件。oc中的面相物件 世界萬物皆物件。物件導向更加復合人民的思考習慣,將複雜的事情簡單化處理,使人民從執行者變成了指揮者 oc中的類相當於圖紙,用來描述一類事物。也就是說,要想建立物件,必須先有類 oc...