類:類是抽象的;物件:物件是具體
------ ios培訓、android培訓、期待與您交流!-------
1、設計乙個類的步驟:<1>類名,<2>屬性,<3>行為(功能)
1>、擁有相同屬性和行為的類都可以抽象出乙個類
2、設計乙個植物大戰殭屍中的殭屍
1>類名:zoombie
2>屬性:life、speed、gongjili
3>行為:walk、bite、die
3、類的宣告和實現
oc中完整描述乙個類:類的宣告和實現
//類的宣告:宣告物件的屬性、行為
#import
@inte***ce car(類名):nsobject //nsobject目的是讓car這個類具備建立物件的能力;
//方法(行為):方法名,引數,返回值(宣告、實現)
//只要是oc物件的方法,必須以減號-開頭
//oc方法中任何資料型別都必須用小括號()括住
//oc方法中小括號()的作用:括住資料型別
-(void)run();//方法的宣告
@end
//類的實現
//用來實現@inte***ce中宣告的方法
@implementation car(類名)
//方法的實現(說清楚方法裡面有什麼**)
- (void)run()
@end
int main()
小結:類的宣告:@inte***ce 類名:nsobject
方法宣告
@end
類的實現:@implementation 類名
方法的實現 //實現@inte***ce中宣告的方法
@end
主函式中:類名 *p = [類名 new] //用p指向建立的新物件
p->成員變數 = ; //給物件的屬性(成員變數\例項變數)賦值
[p 方法名]; //用指向物件的指標呼叫方法;只能用物件呼叫函式
4、方法和成員變數
1>、如果 car *p=[car new];
p->wheels=2;
p->speed=40;
car *p2=p;
p->wheels = 4;
[p run]
輸出的結果是: 4個輪子的車子以40的時速跑起來了
這是因為p和p2都指向了同乙個物件,只要乙個指標指向的成員變數發生改變,那麼物件的成員變數就發生改變;
2>、如果 car *p=[car new];
p->wheels=2;
p->speed=40;
car *p2=[car new];
p2->wheels = 3;
p->speed=50;
p=p2;
p->wheels = 4;
[p run]
輸出的結果是:4個輪子的車子以50的時速跑起來了
只是因為雖然剛開始建立了兩個物件,但是p=p2,將p2指向的物件交給了p;
5、常見錯誤
1>、 不允許在宣告中給成員變數賦值
2>、static int wheels;不能隨便將成員變數當做c語言中的變數
6、方法與函式的區別
1>、以減號-開頭的是物件方法;
2>、物件方法的宣告必須寫在@inte***ce和@end之間;
3>、物件方法的實現必須寫在@implementation和@end之間;
4>、物件方法只能由物件呼叫;
5>、函式能寫在檔案的任意位置@inte***ce和@end之間;
6>、函式的呼叫不依賴物件;
7>、函式內部不能直接通過成員變數訪問某個物件的成員變數;
7、如何設計乙個合理的類
/*學生:
成員變數:性別,生日,體重,最喜歡的顏色,狗
方法:吃,跑步,遛狗,餵狗
*/typedef enum***;
typedef structdate;
typedef enumcolor;
#import
@inte***ce dog:nsobject
- (void)eat;
- (void)run;
@end
@implementation dog
- (void)eat
- (void)run
@end
@inte***ce student:nsobject
- (void)eat;
- (void)run;
@end
@implementation student
- (void)eat
- (void)run
int main()
8、方法的宣告和實現
1>宣告: -(資料型別)方法名:(資料型別)num1;
實現:[物件 方法名:num1];
//方法名是: 方法名:
2>宣告: -(資料型別)方法名withnum1:(資料型別)num1 andnum2:(資料型別)num2;
實現:[物件 方法名withnum1:num1 andnum2:num2];
//方法名是:方法名withnum1:andnum2;
小結:1>、oc方法中,乙個引數對應乙個冒號;
2>、冒號也是方法名的一部分;
------ ios培訓、android培訓、期待與您交流!-------
黑馬程式設計師 OC學習之類和物件
1 物件導向和面向過程 物件導向和面向過程是程式設計的兩種思考方式。物件導向,簡稱oop,它是以事物為中心,參與事件的事物是核心,完成事件只是事物的乙個小任務。面向過程,簡稱opp,它是以事件為中心,事件是核心,列出了完成事件的每乙個步驟,一步一步完成。也就是物件導向側重於從問題在尋找客體 客體的作...
黑馬程式設計師 OC 類和物件
類名 car 屬性 輪胎個數 時速 行為 跑 因為使用了nsobject import 完整地寫乙個函式 函式的宣告和實現 完整的寫乙個類 類的宣告和實現 類的宣告 宣告物件的屬性 行為 nsobject 的目的是 讓car這個類具備建立物件的能力 inte ce car nsobject 用來宣告...
黑馬程式設計師 OC 類和物件
一.物件導向和面向過程的思想 對比 oc是物件導向的,c是面向過程的。物件導向和面向過程只是解決問題的兩種不同思想 1 以用電腦聽歌為例子 a 面向過程 開啟電腦 關閉電腦 b 物件導向 不是相親的 物件 電腦 開機 關機 區別分析 面向過程關注的是解決問題需要哪些步驟 物件導向關注的是解決問題需要...