開啓Objective-C

一、Objective-C簡述

       Objective-C通常寫作ObjC和較少用的Objective C或Obj-C,是擴充C的面向對象編程語言。Objective-C主要用於:編寫iOS操作系統(如:iPhoneiPod touchiPad 等蘋果移動終端設備 )應用程序和Mac OS X操作系統應用程序的利器。 Objective-C的流行當歸功於iPhone的成功,因爲Objective-C被用於編寫iPhone應用程序。

        Objective-C是非常實際的語言。它是一個用C寫成、很小的運行庫,只會令應用程序的尺寸增加很小,和大部分OO系統使用極大的VM執行時間會取代了整個系統的運作相反。Objective-C寫成的程序通常不會比其原始碼大很多。而其函式庫(通常沒附在軟件發行本)亦和Smalltalk系統要使用極大的內存來開啓一個窗口的情況相反。因此,Objective-C它完全兼容標準C語言C++對C語言的兼容僅在於大部分語法上,而在ABI(Application Binary Interface)上,還需要使用extern "C"這種顯式聲明來與C函數進行兼容),而在此基礎上增加了面向對象編程語言的特性以及Smalltalk消息機制。

       OC是C語言的超集,允許在OC中使用C語言源代碼,編譯器兼容C語言程序,具有完善的面向對象特徵、包含一個運行時系統、類庫豐富等特點。

       雖然Objective-C是C的超集,但它也不視C的基本型別爲第一級的對象。C++不同,Objective-C不支援運算子多載(它不支持ad-hoc多型)。亦與C++不同,但和Java相同,Objective-C只容許對象繼承一個類別(不設多重繼承)。

二、面向對象

       面向對象編程 OOP(Object Oriented Programming,面向對象程序設計)是一種計算機編程架構

       面向對象的語言:C++,Java,C#

       面向對象具有三大特徵:封裝、繼承、多態。

       封裝:隱藏內部實現,穩定外部接口

       繼承:子類可以直接複用父類中的成員

       多態:不同對象對同一個消息的不同相應

wKiom1UkvsrxRJPMAAKcKyG9Blw159.jpg

三、類和對象

     面向對象的核心是類和對象

  (一)什麼是類

          類是一組具有相同(特徵)屬性和行爲(功能)的事物的集合,類名是標示符的一種,需要符合規範,通常類名的第一個字母大寫,且不能有下劃線,如果有多個單詞則使用駝峯標識,在對方法進行類的劃分中,一般採取的做法是誰最熟悉這個方法就把這個方法劃分給誰。在OC中,對象對方法的調用稱爲消息機制,即向既定的對象發送了什麼消息。

  (二) 什麼是對象

            時間萬物皆對象,即哲學的“客觀存在”。在生活中,可能是一輛車,一隻筆,或者是一張京東訂單,工商銀行的一張卡等等都是對象。對象描述了一個物體的特性值和行爲實現

   (三) 類和對象的關係

            類和對象的關係就像是狗類和具體的狗的關係一樣。

            類是對象的抽象,是概念或者模板,而對象是類的具體實現,屬於類

            類描述這些類事物應該具體哪些行爲和特徵:而對象真正去實現行爲和特徵

(四)面向對象編程中使用對象完成程序

            開發中:先定義類,再創建對象,然後使用對象

            定義類包含兩個部分:藉口部分和實現部分,分開寫

           1、接口部分:對外聲明類的特徵和行爲。(類似於說明書)h文件中

           2、實現部分:對內實現行爲。(內部的具體實現)m文件

          接口部分(h文件)

          接口部分標誌:@interface·······@end

          作用:聲明類的實例變量和方法,即特徵行爲

          包含內容:類名、父類名、實例變量、方法等

wKioL1UkwETTNcr8AAKDIn6D5Jo296.jpg


          實現部分(m文件)

          實現部分標誌:@implementation·······@end

          作用:實現方法,即實現類的行爲

wKiom1UkvzrDIWfbAAHrzNotW64250.jpg


例如:創建一個AudiCar類

類的接口部分:

wKioL1UkwKizrVGFAALh6dcO8dA741.jpg


類的實現部分如下:

wKioL1UkwMKh9AYhAAJydyk1l2s308.jpg

類的調用部分如下:

wKioL1UkwXSxKq1RAAIqAelYjLY909.jpg


      (五)常見的錯誤

          (1)@interface  @end@implementation  @end不能嵌套包含

          (2)只有類的聲明沒有類的實現

          (3)漏寫@end

          (4)兩個類的聲明嵌套(可以把順序打亂)

          (5)成員變量沒有寫在{}

          (6)方法的聲明寫在了{}裏面

          (7)在聲明時對類的成員變量進行初始化,請注意成員變量不能脫離對象而獨立存在

          (8)方法無法像函數那樣的調用

          (9)成員變量和方法不能用static等關鍵字修飾,不要和c語言混淆

          (10)類的實現可以寫在mian函數後面,在使用之前只要有聲明就可以


四、OC對象與函數

      OC對象與函數有着本質的區別:

    (1)方法的實現只能寫在@implementation··@end中,對象方法的聲明只能寫         在@interface···@end中間

    (2)對象方法都以-號開頭,類方法都以+號開頭

    (3)對象方法只能由對象來調用,類方法只能由類來調用,不能當做函數一樣調用

    (4)函數屬於整個文件,可以寫在文件中的任何位置,包括@implementation··@end中,但寫在@interface···@end會無法識別,函數的聲明可以再main函數內部也可以在main函數外部。

    (5)對象方法歸類\對象所有

    (6)函數調用不依賴與對象

    (7)函數內部不能直接通過成員變量名訪問對象的成員變量


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章