封裝
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....