溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

iOS開發(fā)基礎(chǔ)——OC之OOP詳解

發(fā)布時(shí)間:2020-04-01 10:42:59 來源:網(wǎng)絡(luò) 閱讀:683 作者:藍(lán)鷗易薈云 欄目:移動(dòng)開發(fā)

這一節(jié)內(nèi)容主要是OC中的面向?qū)ο驩OP內(nèi)容,那么我們直接進(jìn)入主題吧!首先一起了解的是OOP是什么?

一、OOP的概念

在iOS開發(fā)學(xué)習(xí)中非常重要,因?yàn)镃ocoa基于OOP概念,而且objective-c是一種面向?qū)ο笳Z言。至于概念,維基解釋:它將對象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴(kuò)展性。
1、類

因?yàn)镃ocoa基于OOP概念,而且objective-c是一種面向?qū)ο笳Z言。至于概念,維基解釋:它將對象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴(kuò)展性。

.h頭文件

iOS開發(fā)基礎(chǔ)——OC之OOP詳解

.m代碼文件

iOS開發(fā)基礎(chǔ)——OC之OOP詳解

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

方法Methods又可稱為函數(shù)。在Objective-C里的類可以定義兩種方法。一種是實(shí)例的方法,一種是類的方法。實(shí)例的方法局限于某個(gè)類的實(shí)例,也就是必須定義這個(gè)類的實(shí)例之后,才能被調(diào)用執(zhí)行的方法。類的方法不需要?jiǎng)?chuàng)建實(shí)例,直接通過類的名稱就可以被調(diào)用執(zhí)行的方法。

定義一個(gè)方法需要:方法名(一個(gè)或者多個(gè)關(guān)鍵字),返回值類型,參數(shù)類型和參數(shù)名。負(fù)號(hào)[-]表示該方法為實(shí)例的方法,該方法的名稱加上各個(gè)關(guān)鍵字包括冒號(hào)即為[insertValue:atIndex:]。

iOS開發(fā)基礎(chǔ)——OC之OOP詳解

Objective-C調(diào)用方法是通過發(fā)送消息給對應(yīng)的實(shí)例對象。

發(fā)送消息是通過一對方括號(hào)[]來實(shí)現(xiàn)的。在括號(hào)的里面,實(shí)例對象在左邊,消息以及參數(shù)等的定義在右邊。

并且必須熟悉中綴符(中間的冒號(hào))。例如:

[anObjectinsertValue:anObjatIndex:1];

為了避免生成多余的臨時(shí)變量,Objecttive-C容許直接使用消息的結(jié)果。如下例:

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

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

例如:NSMutableArray*myArray=nil;//nil等同于通常的NULL
//創(chuàng)建一個(gè)動(dòng)態(tài)數(shù)組,并且制定最初的大小

myArray=[NSMutableArrayarrayWithCapacity:19];

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

寫的太多了,連我自己都有點(diǎn)混了,不過你可不要混哦!因?yàn)樵谀憧催^之后一會(huì)會(huì)對你有很大的幫助的。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI