国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

OC-3.OC的三大特性

2019-11-14 18:03:02
字體:
來源:轉載
供稿:網友

一、封裝

1> 封裝的定義

  • 隱藏對象的屬性和實現細節,僅對外公開接口,控制在程序中屬性的讀和修改的訪問級別

2> 封裝的好處

  • 可以通過set方法防止為成員變量設置不合理的值
  • 僅向外部提供公開的接口,屏蔽成員變量的操作過程
  • 外界可以通過接口間接的操作成員變量,而不必關注內部細節

3> set方法和get方法

  1. set方法

    ① 作用:為成員變量賦值② 命名規范    1)名字必須以set開頭    2)set后緊跟成員變量名,且首字母要大寫    3)返回值一定是void類型    4)一定接收一個類型與要賦值的成員變量一致的參數③ 若成員變量為只讀類型,通常不需要set方法④ set方法可以用于監聽成員變量的改變,而觸發相應的操作

     

  2. get方法

    ① 作用:返回成員變量的值② 命名規范    1)方法名與成員變量名一致    2)返回值類型與要返回的成員變量一致    3)不需要接收任何參數

     

二、繼承

1> 繼承的定義

  • 一個對象直接使用另一個對象的屬性和方法,并擴展自己特有的屬性和方法

2> 優缺點

  1. 優點

    ① 基于原有的模型,擴充特有的方法② 抽取重復代碼,降低代碼冗余③ 建立類與類之間的聯系

     

  2. 缺點

    ① 耦合性太強

     

3> 基本使用

  • 可以使用繼承自父類的成員變量和方法
  • 可以根據需求擴充自己特有的方法
  • 可以在子類中用同名方法來重寫父類的方法
  • 調用一個方法時,先在當前類中找該方法,若找不到,再在父類中找

4> 使用注意

  • 用戶自定義的類通常繼承自系統中的根類,如:NSObject
  • OC語言的繼承是單繼承
  • 只能繼承父類的非私有成員變量和方法
  • 繼承不能減少父類中的成員變量和方法
  • 子類中不允許出現與父類中同名的成員變量
  • 父類必須聲明在子類的前面

5> 繼承與組合

  1. 繼承

    ① 當兩個類用有相同的屬性和方法時,通常將相同的屬性和方法抽取到  一個父類,使用繼承關系② 若A類用有B類的部分屬性和方法,通常讓B類繼承自A類

     

  2. 組合

    ① 當一個類包含另一個類的全部屬性和方法,通常讓這個類作為另一個  類的屬性,使用組合關系② 若A類用有B類的全部屬性和方法,通常讓B類作為A類的屬性

     

6> self與super

  1. self

    ① 基本使用    1)self是一個指針,指向調用當前方法的對象/2)可以調用成員變量和方法    3)使用self來調用成員變量,可以區分同名的局部變量② 使用注意    1)用self調用當前方法會引發死循環    2)不能使用self在類方法中調用對象方法,反之亦然    3)不能使用self調用函數

     

  2. super

    ① 基本使用    1)每個類都會有一個super指針指向其父類    2)子類重寫父類的方法時,若想保留父類的一些行為,通常用super      調用父類中被重寫的方法② 使用注意    1)通過super可以直接調用父類中的類方法/對象方法    2)所調用方法的類型與當前方法的類型一致,如:若當前方法為類      方法,則調用父類中的類方法,反之亦然

     

三、多態

1> 動態綁定的概念

  • 在程序的執行期間判斷所引用對象的實際類型,根據實際的類型調用其相應的方法

2> 基本使用

  • 多態通常指多種形態
  • 體現為父類指針指向子類對象
  • 使用類動態綁定的概念

3> 優缺點

  1. 優點

    ① 當一個函數/方法用父類類型作為參數,可以接收父類、子類對象② 降低了代碼的冗余

     

  2. 缺點

    ① 不能使用父類指針調用子類的方法② 編譯器只會檢測語法是否有誤,只有在運行時才會根據動態綁定結果  調用相應的方法

     

4> 使用注意

  • 多態必須以繼承為基礎,沒有繼承就沒有多態
  • 在運行時會動態檢測指針指向的真正對象
  • OC語言是弱語法,可以用用任何類型的指針指向一個已知的對象,只會發出警告  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄大仙区| 渝中区| 华安县| 噶尔县| 安溪县| 丘北县| 青神县| 凤山市| 霞浦县| 来安县| 镇原县| 松原市| 双城市| 澎湖县| 皮山县| 千阳县| 吴川市| 神农架林区| 洞头县| 西畴县| 北辰区| 大渡口区| 天台县| 施秉县| 吉林省| 钟祥市| 息烽县| 延长县| 乌兰浩特市| 北票市| 伽师县| 灵丘县| 彭泽县| 乳源| 南宁市| 友谊县| 尼玛县| 隆化县| 金溪县| 汉寿县| 融水|