//objective-c物件導向的c語言。
//oc完全相容c,凡是c語言**可以直接編譯在oc的工程當中。
【面向過程的語言】都是祈使句,直接和cpu溝通。目的是操作cpu,儲存資料,管理資料。
//數學邏輯,就像小學解應用題,關注的是資料和管理資料。
【物件導向的語言】在程式中,新增能夠接收訊息的單元(物件),每個單元擁有自己的功能,各單元合作,完成程式。
//應用程式都是用(物件導向的語言程式設計)(oop)的
//物件導向沒有具體的官方定義。早期只使用【繼承】【封裝】【多型】編寫程式的思想。後來,主要指將生活邏輯對映到程式當中。
【類和物件】
一.認識類(class)和物件(object)
//通過上面的描述,我們知道物件是接受資訊的單元,是物件導向程式的核心。那麼如何理解物件呢,類和物件是什麼關係。
<1>生活邏輯
類 物件
人 你,我
電腦 你桌上那台 我桌上這台
超級英雄 美國隊長 鋼鐵俠
外星人 奧特曼 擎天柱
<2>**上看
//編寫oc程式,需要使用整合開發工具xcode
//file -> new -> project 建立新工程
//mac os工程名使用中文無所謂,ios工程使用中文名會導致不可預知的錯誤,無法修復。
//foundation是oc語言的基礎框架,脫離foundation框架,不能寫出oc程式。
類:是乙個自定義的型別,類似結構體或陣列
物件:是使用類這個型別建立的變數
//類似結構體和結構體變數
<3>從封裝的角度上看
結構體:對資料結構體的封裝,負責儲存資料
函式:對功能的封裝,負責管理資料
類:同時對資料結構體和管理資料的方法進行封裝,既能儲存資料,又能自己管理資料。
//將結構體和函式結合起來就成了類。
<4>官方定義
類:同一類特徵的物件的抽象。
物件:類的具體表現形式,或稱具象。
二.構造方法
【注】oc中稱所有init開頭的方法為構造方法
【注】構造方法用於初始化物件,初始化物件的成員變數。
//psbrect rect1, rect2;
//[rect1 init] self = &rect1;
//[rect2 init] self = &rect2;
三.直觀地感受一下物件導向的程式
小明手裡有兩張牌,左手紅桃a,右手黑桃k,問小明交換兩手的牌,之後左右手各是什麼牌?
三個 五個
電視劇集:
1.選演員 找物件,實現物件
2.彩排 寫程式流程
【類方法】
//類方法就是【靜態方法】,方法不屬於任何對像,為類所有。類方法中不能使用物件的成員。
【注】類方法就是c++中的靜態方法,不屬於任何乙個物件,通過類名來呼叫。
- (void)show; //物件的方法
+ (void)show; //類的方法
[dog show];
//物件的訊息,傳送給物件
show(dog);
[dog show];
//類方法用類名呼叫
【特徵】
<1>類方法不能使用成員變數
<2>類方法不能呼叫物件的方法
【作用】
<1>建立物件[ alloc]
<2>對乙個功能模組,留下簡單的對外介面。
//流程可以實現在類方法中,返回結果
//類方法就類似main函式,是乙個模組的「main函式」。
<3>宣告單例物件
//全域性變數儲存的資料,為整個程式每個函式共享。
【問】如果用物件儲存資料,能否宣告成全域性變數,使物件中的資料,為全程式共享?
【答】oc不允許物件靜態記憶體分配,因此不能宣告在資料段,不能宣告成全域性變數。
但是可以宣告為單例物件,單例物件儲存的資料,為全程式共享。
//單例和工廠是oop中常用的設計模式
OC學習筆記 OC中的類
1.objc跟c的區別與聯絡 首先 objc是乙個物件導向的語言 封裝 繼承 多型 objc相當於c的乙個超集 即objc允許使用任何c語言 但增加了許多c沒有的特點 bigger easier 2.objc中的類與物件 類由介面 xx.h inte ce 和實現 xx.m implementati...
OC類的介紹
類的本質 1,類也是個物件 其實類也是乙個物件,是class型別的物件,簡稱 類物件 class型別的定義 typedef struct objc class class 類名就代表著類物件,每個類只有乙個類物件 2,獲取類物件的2種方式 1 class c person class 2 perso...
OC 類的擴充套件
類的擴充套件 繼承 類目延展 協議 1.類目 category 命名 inte ce 要擴充套件的類名 類目名 end 特點 1.不可定義成員變數,而且一般不定義屬性 2.可以新增方法,可重寫原始類的方法,原始類的物件呼叫 2.延展 extension 命名 寫在.m檔案裡 inte ce 類名 e...