Objective-C面向對象編程-知識點彙總

Part-01:
1、OC的歷史及簡介
2、如何創建一個OC的工程
3、OC的Hello World程序
4、OC的語法格式的區別
5、類與對象

1、類:包含數據成員和函數成員的集合,是程序員自己創造的又一種數據類型
2、對象:類這種類型定義的變量
3、分割文件:.h(聲明) 和 .m(實現) 文件
4、帶多個參數的方法如何定義

Part-02:
1、類與對象(續)

1、如何定義私有方法:不在.h中聲明,在.m中直接定義的方法
2、成員變量(類當中說明的方法)與實例變量(類定義的對象,對象裏有的內容)
3、成員變量的訪問權限(私有,保護,包,公有)
4、屬性的簡化
5、無參初始化方法 -(id)init
6、帶參初始化方法 -(id)initWith...
7、id 類型:僅能指向對象的地址,不能指向基本數據類型變量的地址
8、self:是一個指針,哪個對象調用方法就指向哪個對象,其作用是區分不同對象。
    指向的是當前類的對象
9、super:也是一個指針,指向當前類的對象中父類的成員
10、實例方法:是用-號定義的方法,用對象調用的方法
    (方法就是函數,區別是:方法是類中的函數)
11、類方法:是用+號定義的方法,用類名來調用類方法

Part-03:
1、類與對象(續)

1、無參工廠方法
2、帶參工廠方法
3、單例模式:只能生產一個對象的工廠方法
4、引用計數(MRC)
    1、概念:系統添加的計數器
    2、retain方法:引用計數器+1
    3、release方法:引用計數器-1
    4、野指針:指向公共區域的指針
    5、空指針:賦值成nil的指針
    6、屬性(@property)與引用計數
        1、assign(和retain相對)、readonly、【atomic(安全)、nonatomic(不安全)多線程安全性】
    7、autorelease

Part-04:
1、繼承 一般在多態的時候使用繼承

1、概念:繼承實際上是一種代碼複用技術,(is a)的關係
2、派生:指的是在子類中添加新的屬性和方法
3、重寫:子類對父類的方法不滿意時可重寫父類中的方法
3、隱藏:當子類重寫父類的方法後,子類中將有兩個同名的方法,
    而從父類中繼承的方法被隱藏起來不能被調用

2、整體與部分

1、組合:是一種類之間的(contains a)的關係,要求兩個類同生共死;不是繼承的關係(例:動物和頭)
2、聚合:是一種類之間的(has a)關係,它不要求兩個類同生共死;不是繼承的關係(例:電腦和顯示器)
3、優點:低耦合,繼承是高耦合
4、缺點:涉及的類太多

3、多態 必須得使用繼承

1、概念:一個對外接口,多個內在實現
2、參數多態
3、數組多態
4、返回值多態

Part-05:
1、協議(一對多) 可以定義屬性和方法,必須在達成協議的類裏才能實現

1、定義協議
2、required和optional關鍵字
3、協議的繼承
    1、可以同時繼承多個協議     *OC的類只能單繼承  *一個協議可以對應多個類
4、協議數組
5、協議參數
6、協議返回值

2、分類(一對一) 一個分類只能依附一個主類

1、分類的定義
2、分類的使用,像沒有分類一樣直接使用這個類
3、注意:在分類中不能有實例變量或屬性,但是在擴展中可以定義

3、擴展(*定義擴展和定義分類一樣,只是沒有名字,但可以有實例變量或屬性
*擴展沒有.m文件,分類有.m文件;擴展中聲明的方法必須在主類的.m文件中實現)

1、定義:沒有名字的分類
2、擴展當中可以有實例變量和屬性(與分類的區別)

Part-06:
1、ARC

1、什麼是ARC,iOS 5.0以後開始使用,iOS 7.0以後強制使用
2、MRC與ARC的區別:
    1、ARC中不用寫retain,release,autorelease,dealloc
3、strong<=>retain
4、weak<=>assign
5、其他修飾符
    1、__unsafe_unretian
    2、__autoreleaseing
6、由MRC轉換成ARC的方法:
edit->Convert->To Objective-C ARC
7、混編選項:-fno-objc-arc 標誌着文件不適用ARC

2、NOObject類

1、alloca,init,new,dealloc
2、copy(深拷貝):深拷貝可以避免野指針和內容被修改的問題
    1、遵守協議NSCopying
    2、在需要深拷貝的類中添加-(id)copyWithZone:(NSZone*)zone方法
    3、使用copy方法實現深拷貝
    4、屬性參數可以是copy,此時對屬性的賦值將進行深拷貝
3、類對象:用於判斷一個對象(stu)是否是指定類(DJTeacher)的對象
4、比較類信息
    1、isKindOf是否爲指定類及其父類們的對象
    2、isMemberOf僅判斷對象s是否爲指定類的對象,不判斷指定類的父類
    3、isSubclassOf是判斷一個類是否是另一個類的子類,它是一個類方法

Part-07:
1、NSObject(續)

1、方法選擇器
2、協議選擇器

2、NSString

1、對象創建(3種)
2、分割(3種)
3、拼接(3種)(結果是一個新的字符串)
4、替換(1種)(該替換完成後生成新的字符串)
5、用文件內容創建字符串

3、NSMutableString(可變字符串)

1、對象創建(4種)
2、在字符串中添加內容(使字符串變長)(字符串本身長度變長)(兩種)
3、在字符串中刪除內容(使字符串變短)(一種)
4、替換(該替換完成後只是更改了原字符串)(一種)

4、NSNumber

1、用於封裝C語言的基本數據類型,成爲一個 Objective-C 的類的對象
(OC的數組元素不允許是C的基本數據類型變量)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章