objective - c 類和對象

 

 

知識點算法

1.初步認識 OC  編程

2.xcode使用xcode

3.面向對象編程思想,類和對象iphone

4.類的定義和使用編程語言

5.類的實例化--對象函數

6.聲明和實現相分離學習

 

===========================================spa

一、須要理解的(理論部分)                            設計

 第一部分:OC和麪向對象指針

1.一、OC語言的歷史,特色、重要程度

【什麼是OC】

 

objective - c   在C語言基礎上開發, 面向對象的語言; 

 

注意C語言和oc語言語法的區別; 

 

 

IOS, iphone, ipad …  

 

 

【進入OC階段須要注意的事項】 

 

一、 oc語言和c語言的區別;

 

二、多敲代碼, 多耐心調試程序;    

 

三、經過幾個數據模型的項目熟悉oc語法,面向對象思想; 

 

四、類提供大量的方法, 總結積累的習慣; 

 

 

=====================================================================

二、如何在Xcode中建立OC工程

 

 

【經常使用快捷鍵】

 

【編譯】   command + b  

【運行】   command + r

【調試框和打印框顯示和隱藏】  command + shift + y  

【中止】   command + .

【註釋】   command + / 

【代碼對齊】   control + i 

 

其餘快捷鍵:

 

 

花:  command ,  ^ : control,  ⬆️ : shift   

 

 

 

 

2.2 OC兼容C, 區別於C語言的地方   

各類文件後綴名 .c和.m和.mm的區別

 

 

.c  C源代碼問價;

.m :  C+OC文件; 

.mm : C++ + OC文件; 

 

.h 頭文件; 

 

#import做用

 

把文件包括進來; 

 

 

 

 

 

 

@」hello」和C字符串區別

 

oc字符串:  @「字符串」 

C字符串:   「字符串」  

 

 

NSLog函數和printf函數區別

 

//     NSLog                printf

//  一、默認會換行             默認不會換行

//  二、預期打印出OC字符串     預期打印出c字符串

//  三、打印出工程名和時間      不會打印出工程名和時間

//  四、能夠打印oc對象 %@        不可打印oc對象

 

  【NSLog各類數據類型的打印】

 

char   1 Byte

short                2 Byte

int                     4 Byte

long                 8 Byte

float                 4 Byte

double            8 Byte

 

BOOL 

NSInteger

NSUInteger

CGFloat

 

 

 

練習:輸出各類數據類型的字節數

 

 

 

【恢復快捷鍵】      command  + z

 

 

 

 

================================================================================

 

三、面向過程和麪向對象:

 

C語言是面向過程的語言;

 

OC語言是面向對象的語言;

 

 

面向過程:  解決一個問題須要哪些過程(步驟);    

 

 

面向對象:  解決一個問題須要哪些對象;  

 

 

3.一、面向過程和麪向對象

3.1.1 面向過程編程

【面向過程的語言】

一、省略主語;  (主語是cpu)  

二、面向過程 = 數據 + 算法;

三、數學映射; 

 

 

【例子】

面向過程

冰箱裝大象;

一、打開冰箱;

二、把大象放進冰箱;

三、關閉冰箱; 

 

打開電腦玩遊戲;

一、打開電腦

二、開始玩遊戲;

三、關閉電腦;

 

 

【面向對象的語言】 

 

一、主語是對象, 主要因素就是對象;每一個對象能夠接受不一樣信息, 這些共同合做完成一件事情;

二、面向對象 = 對象 + 消息;

三、生活映射;

 

應用程序都是用面向對象的語言寫; 

 

轉變:

【例子】

面向對象     

冰箱裝大象     (兩個對象: 冰箱, 大象)

一、冰箱打開門;

二、冰箱存儲大象;

三、冰箱關閉門;

 

 

打開電腦玩遊戲:

一、電腦打開;

二、人玩LOL

三、電腦關閉;

 

 

面向過程:  解決一個問題須要哪些過程(步驟);    

面向對象:  解決一個問題須要哪些對象;

 

舉例:

一、造房子;     一、打地基;   二、 砌磚;    三、裝修;

 

一、須要會打地基的張三; 二、會砌磚的李四; 三、會裝修得老王;

 

二、接IOS項目;     一、 寫iOS代碼;  二、會美工;  三、會銷售;

 

  一、會寫iOS代碼的全蛋;     二、會美工的小花;   三、會銷售的鐵柱; 

 

 

3.2 類和對象的概念

 

類:       對對象的描述, 是對象的一個模板; 

對象:   對象是實實在在存在,看得見摸得着, 在內存佔有存儲空間,同過類建立;

 

 

一.認識類和對象

 

對象是面向對象程序的核心。那麼如何理解對象呢,類和對象是什麼關係。  

 

7.類和實例的區別

  1)類是對象的模板,類是靜態的,自己並不佔用內存,只是對某類事物的一個說明

  2)對象是某個模板的具體化

 

3.2.1 從生活邏輯上

類             對象

人                張三,   李四, 老王

電腦               我桌面這臺電腦, 你桌面那臺電腦;

  小白, 旺財

超級英雄       鋼鐵俠,  綠巨人, 蜘蛛俠;  

 

3.2.2 從封裝的角度

結構體 = 對數據封裝;

函數 = 對代碼的封裝;

類 = 對數據和 函數的封裝; 

 

函數(方法)

 

面向對象三大特徵:   一、封裝;   二、 繼承; 三、多態; 

 

 

3.2.3 從編程語言的角度

類是一種自定義的類型 沒有佔用內存

對象是使用類建立的變量 用類型定義的變量會佔用內存

 

 

3.2.4 官方定義

類:同一類具備相同特徵的事物的抽象;

對象:某個類類型的變量

 

 

===========================================

4. 須要記住掌握的(實戰部分)  

 

【如何設計一個類】

 

人類:

成員變量: 名字, 年齡;

成員方法(函數):吃飯, 睡覺,打豆豆; 

 

在OC大多數關鍵字都是以@開頭; 

 

設計一個類分兩部分:  類的聲明, 類的實現; 

 

4.一、【類的聲明】

 

//@interface 類名 : 父類

  {

// 成員變量

}

 

// 成員方法的聲明; 

 

 

//@end

 

4.二、【類的實現】

//@implementation 類名

實現成員方法;

 

//@end

     4.三、【成員變量】 

 

描述擁有什麼;  

 

     4.4   【成員方法】    

 

描述能作什麼; 

 

4.五、【如何建立對象】

 

[類名 alloc];

 

 

4.六、【方法的調用】

 

[對象 方法名];

 

 

需求 :  訪問成員變量?  經過方法來訪問成員變量: 

 

 

 

成員方法詳細說明:

1,無參 ,無返回值的成員方法 - (void) 方法名;

2,帶參數   - (void) 方法名:(參數類型)參數名; 

3,帶返回值得方法 - (NSUInteger)getAge; 

4,帶多個參數的方法  - (void)便籤:(參數類型1)參數名1 標籤2:(參數類型2)參數名2;

 

 

 

 

關於命名的那些事兒:

一、成員變量命名: 以_開頭; 

二、方法名和成員變量命名: 第一個單詞小寫,從第二單詞開始首字母大寫; 

三、類名:   每個單詞首字母大寫;

 

 

 

 

練習:【test1】

 

寫一個學生類:

成員變量:  name,學號,體重;

實現方法三個方法:  設置名字;設置學號;設置體重;

實現一個方法: 同時能夠設置名字,學號,體重;

實現一個方法: 正在學習;

實現一個方法: 獲取學號;

實現一個方法: 自我介紹;

 

 

 

 

注:什麼是對象和什麼是對象指針?

 

Student *s = [Student alloc]; 

 

對象指針:  s                            在棧區; 

對象:  [Student alloc];        在堆區;

 

 

面向對象:

一、先找出對象; 

二、列舉出對象須要的成員變量和成員方法;

三、設計類;

四、經過類建立該對象;

五、讓對象完成事情; 

 

 

練習:

一、編寫一個加法器,它可以接收兩個整數int,而後輸出兩個整數的和;

 

一個對象 : 加法器; 

 

須要成員變量: int ,int

方法: 加法;

 

 

 

 

之後項目中建立類確定是每一個類都在單獨的文件 .h 和 .m中, 不會在main函數的上面建立類

 

 

.h 是類的聲明;

.m 是類的實現;

 

 

使用該類(注意)   把類的.h頭文件#import進來; 

 

#import <系統提供.h>

#import「自定義的頭文件.h」

 

一、如何設計一個類;  

二、成員方法的語法;    

三、如何建立一個對象;

四、調用對象的成員方法;

 

 

 

練習:

 

二、有一個長方形類,成員變量:長,寬,面積,周長;

  方法有:設置長和寬,打印面積,打印周長;

 

 

 

 

 

三、設計狗類

屬性:  名字,年齡,體重

方法:say說話,賣萌salesBud;

分別寫三個方法,給三個成員變量賦值;

    再寫一個方法,同時給三個成員變量賦值;

再寫一個方法,打印三個成員變量的值;

 

 

 

 

 

 

 

【做業】

一、已知一輛汽車速度是20Km/h,若令它行駛過一段1000km路程,須要多少小時?

 

 

 

二、建立一條公路,屬性有長度和寬度,編寫關於長度和寬度的設置和取值方法。

 

 

三、小明手裏有兩張牌,左手紅桃A,右手是方片K,交換手裏的兩張牌,

問:交換以後,手裏的牌各是什麼?

相關文章
相關標籤/搜索