IOS中類和物件以及nil Nil NULL的區別

2021-06-28 22:41:01 字數 2400 閱讀 5816

類是對同一類事物高度的抽象,類中定義了這一類物件所應具有的靜態屬性(屬性)和動態屬性(方法)。

物件 是類的乙個例項,是乙個具體的事物。

類與物件是抽象與具體的關係。

類其實就是一種資料型別,它的變數就是物件。

類與類之間的關係——繼承關係

a是b如果這句話說的通,在設計程式的時候就可以看成是繼承關係。

例如:學生與小學生 小學生也是學生,所以學生是小學生的父類,小學生是學生的子類。

oc與物件導向

物件是oc程式的核心。「萬事萬物皆物件」是程式中的核心思想。

類是用來創見同一型別的物件的模板,在乙個類中定義了該類物件所具有的成員變數以及方法。

類可以看成是靜態屬性(例項變數)和動態屬性(方法)的集合體。

ios sdk裡面提供了大量供程式設計人員使用的類,程式設計人員也可以定義自己的類。

二、關於nil,nil,null,[nsnull null]的區別

nil:指向oc中

物件的空指標。

nil:指向oc中

類的空指標。

null

:指向其他型別的空指標,如乙個c型別的記憶體指標。

nsnull

:在集合物件中,表示

空值的物件。

若obj為nil:

[obj message]將返回no,而不是n***ception

若obj為nsnull:

[obj message]將丟擲異常n***ception

三、示例

nil和null從字面意思來理解比較簡單,nil是乙個物件,而null是乙個值,我的理解為nil是將物件設定為空,而null是將基本型別設定為空的。而且我們對於nil呼叫方法,不會產生crash或者丟擲異常。

看一下用法

nsurl *url = nil;

class class = nil;

int *pointerint = null;

nil是乙個物件指標為空,nil是乙個類指標為空,null是基本資料型別為空。

這五個概念很容易混淆,在一些場合下他們具有同樣的用法。首先解釋一下「空指標」意思,空指標是指該指標未指向一塊有意義的記憶體區。如int *p; int *p = null;

nsobject *obj1 = [[nsobject alloc] init];

nsobject *obj2 = [nsnull null];

nsobject *obj3 = [nsobject

new

];nsobject *obj4;

nsarray *arr1 = [nsarray arraywithobjects:obj1, obj2, obj3, obj4, nil];

nslog(@

"arr1 count: %ld"

, [arr1 count]);

//count: 3 因為obj=nil,在加入obj4時就結束新增物件

nsobject *obj1;

nsobject *obj2 = [[nsobject alloc] init];

nsobject *obj3 = [nsnull null];

nsobject *obj4 = [nsobject

new

];nsarray *arr2 = [nsarray arraywithobjects:obj1, obj2, obj3, obj4, nil];

nslog(@

"arr2 count: %ld"

, [arr2 count]);

//count: 0,因為obj1=nil,所以後面的物件沒有新增進去

[nsnull null]通常作為佔位符作用,如下:

nsobject *obj1 = [nsnull null];

nsarray *arr1 = [nsarray arraywithobjects:@

"one"

, @"two"

, obj1,@

"three"

,nil];

for

(nsstring *str in arr1)

//result:one、two、、three

nsobject *obj1 = [nsnull null];

nsarray *arr1 = [nsarray arraywithobjects:@

"one"

, @"two"

, obj1,@

"three"

,nil];

for

(nsstring *str in arr1)

}//result:one、two、three

物件導向以及類和物件

四 類和類之間的關係 五 物件導向的分析過程 面向過程 強調過程步驟 物件導向 強調的是物件 分析過程 先有物件後有類 編碼過程 先有類後有物件 類 是具有相同屬性和行為的物件的集合 模板 定義了物件的屬性和方法 物件 根據類的屬性和行為建立的例項化 lei 通過類可以例項化多個該類的物件,每個物件...

IOS中的Swift基礎(類和物件)

person.swift import foundation 類是一類物體的共有性抽象 物件是某一類的乙個具體 class person nsobject 該方法是為了解決字典裡面的一些 key值,在該模型裡面沒有導致的系統崩潰 override func setvalue value anyobj...

iOS入門(十五)類和物件

類和物件 類和物件是物件導向的核心 定義類,建立物件,使用物件。類 具有相同特徵和行為的事物的抽象。定義類包括兩個部分,介面部分和實現部分 oc對c語言的擴充套件。inte ce person nsobject 建立物件 分配記憶體空間 person p person alloc 初始化 p p i...