Objective C 物件導向的三大特性

2021-09-24 22:14:45 字數 1754 閱讀 1678

封裝

set方法 

作用:提供乙個方法給外界設定成員變數值,可以在方法裡面進行過濾

命名規範

1. 方法名必須以set開頭

2. set後面跟上成員變數的名稱,成員變數的首字母必須大寫

3. 返回值一定是void

4. 一定要接收乙個引數,而且引數型別跟成員變數型別一致

5. 形參的名稱不能跟成員變數名一樣

6. 只寫(writeonly)

get方法

作用:返回物件內部的成員變數

命名規範:

1. 肯定有返回值,返回值型別肯定與成員變數型別一致

2. 方法名跟成員變數名一樣

3. 不需要接收任何引數

4. 唯讀(readonly)

封裝的好處

1、過濾不合理的值

2、遮蔽內部的賦值過程

3、讓外界不必關注內部的細節

類方法

基本概念

直接可以用類名執行的方法(類本身會在記憶體中佔據儲存空間,裡面有類/物件方法列表)

1. 類方法都是以+號開頭

例  + (void)printclassname;

2. 只能由由類(名)來呼叫

3. 類方法中不能訪問成員變數(例項變數)

類方法的好處和使用場合

1. 不依賴於物件,執行效率高

2. 能用類方法,盡量用類方法

3. 場合:當方法內部不需要使用到成員變數時,就可以改為類方法

可以允許類方法和物件方法同名

工具類: 基本沒有任何成員變數,裡面的方法基本都是類方法

self

self:指向了方向呼叫著,代表當前物件

1. 訪問當前物件的成員變數

例  self->成員變數名

2. [self 方法名];可以呼叫其他物件方法/類方法

繼承

繼承的好處:

1. 抽取重複**

2. 建立了類之間的關係

3. 子類可以擁有父類中的所有成員變數和方法

注意1. 基本上所有類的根類是nsobject

重寫:子類重新實現父類中的某個方法,覆蓋父類以前的做法

注意1. 父類必須宣告在子類的前面

2. 子類不能擁有和父類相同的成員變數

3. 呼叫某個方法時,優先去當前類中找,如果找不到,去父類中找

壞處:耦合性太強

1.繼承的使用場合

1. 當兩個類擁有相同屬性和方法的時候,就可以將相同的東西抽取到乙個父類中

2. 當a類完全擁有b類中的部分屬性和方法時,可以考慮讓b類繼承a類

組合:是a類的屬性,方法可以讓b類來用,可以不用繼承  //score *_score;

super

super的作用

1.直接呼叫父類中的某個方法

2.super處在物件方法中,那麼就會呼叫父類的物件方法

super處在類方法中,那麼就會呼叫父類的類方法

3.使用場合:子類重寫父類的方法時想保留父類的一些行為

多型(多種形態)

1.沒有繼承就沒有多型

2.**的體現:父類型別的指標指向子類物件

3.好處:如果函式\方法引數中使用的是父類型別,可以傳入父類、子類物件

侷限性:

1. 父類型別的變數不能直接呼叫子類特有的方法。必須強轉為子類型別變數後,才能直接呼叫子類特有的方法

objective c物件導向

oop object oriented programming 特徵 多型 繼承 封裝 兩部分組成 1.inte ce部分 定義類的公共介面和類的資料成員 2.implementation部分 實現這些方法的實際方法 main檔案中新增friend類 inte ce 部分 inte ce frien...

Objective C 物件導向初體驗

1.類的宣告 1 1 inte ce開始,end結束 1 2變數和方法不能混在一起,例項變數必須放在 內 1 3沒有static const的例項變數。在.m檔案中可以宣告static靜態屬性 屬於類,不屬於物件。同樣,也沒有const方法,沒有友元方法。1 4 宣告的方法是protect,宣告是p...

objective C物件導向理解(上)

在objc中定義乙個類需要兩個檔案.h和.m demo 在.h 檔案中 import 由於使用了nsobject,所以匯入此標頭檔案 nsobject是基類,person實現了nsobject inte ce person nsobject end.m檔案 import import person....