OC學習心得之面向類和物件

2021-07-07 05:20:03 字數 1653 閱讀 4819



objective-c是c語言的拓展,它的原意就是在原始的c語言的主體上加入物件導向的特性。

1、物件導向和面向過程

物件導向和面向過程是程式設計的兩種思考方式。物件導向,簡稱oop,它是以事物為中心,參與事件的事物是核心,完成事件只是事物的乙個小任務。面向過程,簡稱opp,它是以事件為中心,事件是核心,列出了完成事件的每乙個步驟,一步一步完成。也就是物件導向側重於從問題在尋找客體、客體的作用。客體間的關係即「誰」、「做什麼」、「怎麼做」,面向過程側重於問題的分解即「事件怎麼做」。

2、類和物件

(1)類是一組具有相同(特徵)屬性和行為(功能)的事物的集合(抽象)。物件就是類的具體實現。世間萬物皆物件。類其實就是一種資料型別,它的變數就是物件。

(2)類的定義

在oc中,類的定義分兩部分:介面部分和實現部分;

介面部分(inte***ce):宣告了類與父類的名字、方法,例項變數(成員變數)。介面檔案以.h為字尾的檔案。

例如 student.h 

介面檔案

@inte***ce student : nsobject 

//nsobject是所有類的基類在這裡是student的父類

//是方法的宣告

-(void) sayhi; 

//打招呼的方法

-(void) eat; 

//吃飯的方法

-(void) walk; 

//走的的方法

實現部分(implementation):包含了方法的實現,真正意義上定義並實現類的行為。實現檔案以.m為字尾的檔案。

注意:編譯器不要求將介面檔案和實現檔案的**放在不同的檔案中。每乙個類用一對介面/實現原始檔是乙個良好的習慣。乙個檔案中可以宣告和定義多個類。

如果類之間沒有什麼關係,最好不要把不同的類放在同乙個檔案書寫。

例如  

實現檔案

#import

@implementation student

//以下是方法的實現

-(void) sayhi 

//打招呼的方法

-(void) eat 

//吃飯的方法

(3)建立和使用物件

1>物件的建立

記憶體分配:為物件動態的分配記憶體位址。

初始化:在記憶體中初始化空間。

例如:student * stu =[[student new];

說明:向類傳送alloc訊息,就是為該類分配一塊足夠大記憶體,用於存放例項變數,同時初始化記憶體,填上的初始值。

2>物件的賦值使用

例如://main函式

#import "student.h"

int main (int argc, const char * argv)

->賦值必須例項變數的修飾符是@public。例項變數的修飾符還有@protected和@private,系統預設例項變數的型別是@protected,對於這兩種型別的例項變數,我們需要呼叫方法為其賦值。

廣義上講為例項變數賦值的方法成為設定器,取出例項變數的方法成為訪問器。

設定器、訪問器說明:

1. 設定器命名: set+首字母大寫的例項變數名  如:-(void)setage:(int)newage

2. 設定器引數不要與例項變數重名。

3. 讀取器:與例項變數名同名,並且返回型別與例項型別一致。

OC學習總結之物件導向和類

objective c是c語言的母集合,它的原意就是在原始的c語言的主體上加入物件導向的特性。1 物件導向和面向過程 物件導向和面向過程是程式設計的兩種思考方式。物件導向,簡稱oop,它是以事物為中心,參與事件的事物是核心,完成事件只是事物的乙個小任務。面向過程,簡稱opp,它是以事件為中心,事件是...

物件導向程式設計學習心得

菜鳥心得,如有錯誤,望大神指正 乍一聽物件導向程式設計,覺得好難好高深的樣子,其實不然,舉個栗子 我們知道css裡有class類,可以多處公用乙個class樣式,而且拓展方便。其實物件導向程式設計,類似於我們css裡的class類的概念,就是頁面中多處相同的互動效果或功能,就可以用物件導向的寫法實現...

OC學習之物件導向三大特徵

繼承性是指,在某種情況下,乙個類下面會有乙個子類,這個子類理論上來說會比之前的類 父類 具體化。比如還是 狗 這個類,假設它裡面有乙個成員變數是身高和體重,有乙個方法是咬人。然後再假設這個 狗 類中有 哈士奇 和 金毛 這兩種狗,這兩種狗除了繼承其父類中的成員和方法外,還有自己新增的一些,比如在 哈...