iOS開發基礎——OC之OOP詳解

這一節內容主要是OC中的面向對象OOP內容,那麼我們直接進入主題吧!首先一起了解的是OOP是什麼?

一、OOP的概念

在iOS開發學習中非常重要,因爲Cocoa基於OOP概念,而且objective-c是一種面嚮對象語言。至於概念,維基解釋:它將對象作爲程序的基本單元,將程序和數據封裝其中,以提高軟件的重用性、靈活性和擴展性。
1、類

因爲Cocoa基於OOP概念,而且objective-c是一種面嚮對象語言。至於概念,維基解釋:它將對象作爲程序的基本單元,將程序和數據封裝其中,以提高軟件的重用性、靈活性和擴展性。

.h頭文件

151637998.jpg

.m代碼文件

151657175.jpg

initWithUserName()方法的返回值的數據類型爲id,在Objective-C裏面叫做指針類型。Objective-C的對象的定義,可以支持強類型的實例,以及弱類型的實例的定義。簡單的說,強類型就是定義該實例的時候必須指明類的名字,弱類型就是沒有指明類的名字。下面給大家看看實際的代碼就會明白,定義這兩者的時候的區別。
MYHelloWorld*myHelloWorld1;//強類型(Strongtyping)
idmyHelloWorld2;//弱類型(Weaktyping)
方法(Methods)

方法Methods又可稱爲函數。在Objective-C裏的類可以定義兩種方法。一種是實例的方法,一種是類的方法。實例的方法侷限於某個類的實例,也就是必須定義這個類的實例之後,才能被調用執行的方法。類的方法不需要創建實例,直接通過類的名稱就可以被調用執行的方法。

定義一個方法需要:方法名(一個或者多個關鍵字),返回值類型,參數類型和參數名。負號[-]表示該方法爲實例的方法,該方法的名稱加上各個關鍵字包括冒號即爲[insertValue:atIndex:]。

151728674.jpg

Objective-C調用方法是通過發送消息給對應的實例對象。

發送消息是通過一對方括號[]來實現的。在括號的裏面,實例對象在左邊,消息以及參數等的定義在右邊。

並且必須熟悉中綴符(中間的冒號)。例如:

[anObjectinsertValue:anObjatIndex:1];

爲了避免生成多餘的臨時變量,Objecttive-C容許直接使用消息的結果。如下例:

[[anObjectgetArray]insertValue:[anObjectgetValueToInsert]atIndex:0];

類的方法,類和靜態方法很相似,常用於作爲工廠模式中用來生成新的實例。定義時和實例的方法不同的是開頭的符號爲加號[+]。調用的類的方法和調用(StaticFunction)基本相同,直接通過類名就可以。

例如:NSMutableArray*myArray=nil;//nil等同於通常的NULL
//創建一個動態數組,並且制定最初的大小

myArray=[NSMutableArrayarrayWithCapacity:19];

tips:大家要注意,在.h文件中的冒號,在沒有參數的方法後面不需加冒號,冒號後面是一定要跟參數的。在@implementation中,可以定義在@interface中沒有相應聲明的方法,將它們看做私有方法,那麼只在類的實現中使用。在OC中並不存在真正的私有方法,所以一旦這樣做了,從該實現之外依然可以訪問該方法。

寫的太多了,連我自己都有點混了,不過你可不要混哦!因爲在你看過之後一會會對你有很大的幫助的。


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