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

2021-09-06 19:37:35 字數 1597 閱讀 1027

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

1、物件導向和面向過程

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

2、類和物件

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

(2)類的定義

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

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

例如 student.h        介面檔案

@inte***ce student : nsobject      //nsobject是繼承的父類

//是方法的宣告

-(void) sayhi;   //打招呼的方法

-(void) eat;       //吃飯的方法

-(void) walk;    //走的的方法

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

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

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

例如    實現檔案

#import

@implementation student

//以下是方法的實現

-(void) sayhi   //打招呼的方法

-(void) eat       //吃飯的方法

(3)物件的建立和使用

1>物件的建立

初始化:在記憶體中填上的初始值。

例如:student * stu =[[student alloc] init];

說明:向類傳送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,它是以事件為中心,事件是核...

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

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

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

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