一、什么是OOP:
創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元賀州做網(wǎng)站,已為上家服務(wù),為賀州各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
OOP(Object Oriented Programming):面向?qū)ο缶幊?br />
二、面向?qū)ο蠛兔嫦蜻^程的區(qū)別:
面向過程編程:分析解決問題的步驟,實現(xiàn)函數(shù),依次使用
面向?qū)ο缶幊蹋悍纸鈫栴}組成的對象,協(xié)調(diào)對象間的聯(lián)系和通信,解決問題。
面向過程是以事件為中心,關(guān)心的是完成這個事件的詳細步驟;
面向?qū)ο笫且允挛餅橹行?,關(guān)心的是事物應(yīng)該具備的功能,而完成一個事件只是事物所有功能里面的一個小功能
(以過程為中心,以對象為中心)
三、類和對象
對象定義了解決問題的步驟中的行為,不刻意完成一個步驟
類:具有相同特征和行為的事物的抽象
對象是類的實例,類是對象的類型:萬事萬物皆對象
(下面是我在學習的時候記的一些筆記)
四、setter、getter方法
//setter方法(也叫設(shè)置器),給單一實例賦值,也就是該方法只有一個參數(shù)
//getter方法(也叫訪問器),獲取單一實例變量的值,無參數(shù),有一個返回值
//setter方法的規(guī)范寫法:-號方法,set開頭+實例變量名(去掉下劃線,并且首字母大寫)+冒號+實例變量參數(shù)類型+實例變量名(去掉下劃線),并且返回值類型為void
//getter方法的規(guī)范寫法:-號方法,返回值類型和實例變量類型相同,方法名與實例變量名相同(去掉下劃線)。
五、枚舉類型:
//枚舉也是一個構(gòu)造類型,枚舉類似于數(shù)學中的窮舉法,列出了所有的可能, //枚舉是把人能夠識別的標識符和計算機能夠識別的數(shù)字結(jié)合起來。
//在使用枚舉值時,系統(tǒng)會自動替換成對應(yīng)的數(shù)字
//如果第一個枚舉值,沒有給定對應(yīng)的整數(shù)值,則默認是從0開始,然后后邊的枚舉值所對應(yīng)的整數(shù)值以前一個枚舉值對應(yīng)的整數(shù)值為基礎(chǔ),然后加1。如果后邊的枚舉值指定了對應(yīng)的整數(shù)值,則以指定的整數(shù)值為準。
六、OC的一些基礎(chǔ)知識:
/** * 類的定義包含兩部分:接口部分以及實現(xiàn)部分,接口部分寫在 .h文件中,實現(xiàn)部分寫在 .m文件中 */
/** * 接口部分,@interface 開頭 + 類名 + :(冒號表示繼承) + 父類名 @end 結(jié)束 只要符合這種格式,都可以定義一個類的接口部分 */
// .m 文件是類的實現(xiàn)部分
/** * 實現(xiàn)部分 以@implementation + 類名(要對哪個類實現(xiàn)) 以 @end 結(jié)束 只要符合這種實現(xiàn)的格式,都可以定義一個類的實現(xiàn)部分 */
//一個文件里面可以定義多個類,只要接口部分符合@interface開頭 @end結(jié)束,實現(xiàn)部分符合 @implementation開頭 @end結(jié)束 格式就可以定義多個類//本質(zhì)上文件和類沒有直接關(guān)系
//一般情況下,一個文件只定義一個類,并且文件的名字默認和類名相同
//NSLog輸出到控制臺,@是OC的標志,并且自帶換行
OC消息發(fā)送機制:[receiver message]
- 對象調(diào)用的方法
+ 類調(diào)用的方法
id:對象類型
//創(chuàng)建一個 Person 類的對象
//創(chuàng)建對象分兩步:
//1.在堆區(qū)開辟空間 Person *per = [Person alloc];
//2.初始化(基本數(shù)據(jù)類型置0,對象數(shù)據(jù)類型置nil) per = [per init];
//開辟空間并初始化:// Person * per2 = [[Person alloc] init];
//對象調(diào)用方法,方法調(diào)用采用消息發(fā)送機制,[receiver message]
//如果該方法是 - 號方法,則應(yīng)該用對象調(diào)用,如果是 + 號方法,則應(yīng)該用類調(diào)用。receiver為類或者對象,message為調(diào)用的方法名
//實例變量的可見度:
//1.@public: 公共的,任何文件都可以通過指向操作符進行訪問
//2.@private: 私有的,只有在該類的 .m 文件中才可以訪問,子類以及其他的文件不可訪問
//3.@protected: 受保護的,除了該類和子類之外不可被其他文件訪問 //系統(tǒng)默認是 @protected (受保護)的,
//面向?qū)ο蟮娜筇匦裕悍庋b,繼承以及多態(tài)
聲明變量不使用@public的原因:
1.使用@public關(guān)鍵字,暴露了類內(nèi)部的細節(jié);
2.不符合面向?qū)ο笳Z言的三大特性之一——封裝
不使用@private的原因:
不符合面向?qū)ο笳Z言的三大特性之一——繼承
類方法:只能類使用,+ 方法,類方法中不能使用實例變量;
實例方法:只能對象使用, - 方法。
//#import 可以避免重復導入,也就是說當我們#import多次同一個頭文件時,只做了一次代碼或文本的替換輸出對象統(tǒng)一用%@格式。