2012-06-07 53 views
1

我學習蘋果OBJ-C指導,我有問題的理解類類型中,醫生說幫助我理解OBJ-C類類型

類定義是一類對象的規範。有效的類 定義了一種數據類型。該類型不僅基於類定義的數據結構(實例變量) ,還基於定義​​(方法)中包含的 行爲。

int i = sizeof(Rectangle); 

和sizeof是操作者不C方法:無論類型說明符在C-爲 例如允許的,作爲參數傳遞給sizeof操作符的類名稱可以出現在源代碼 ?

而且還請我清楚這意味着什麼

Objects are always "typed by" a pointer. 
+3

你也讀作[面向對象編程與Objective-C的( https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/OOP_ObjC/Introduction/Introduction.html)?它首先解釋OOP以及它如何在ObjC中完成。 – vikingosegundo

回答

0

很抱歉,但也許你應該從一些輕鬆的obj然後-C開始。在OOP(面向對象編程)中,您從基本類型(int,long,char,有時是字符串等)開始。 然後你有類包含基本類型屬性和方法(類似於C中的結構)。

通常可以實例化一個類,這意味着您可以創建該類型的對象。例如。

class Person { 

    int age; 

    string name; 
    string surname; 

    void printFullName() { 

     Console.WriteLine(name + " " + surname); 

    } 

} 

如果寫

var myperson = new Person(); 

創建類型Person的一個新對象,與

myperson.printFullName(); 

就可以訪問它方法printFullName()

在該示例sizeof是C一元運算符(如++或 - )和矩形是一種類型,一類。
順便說一句,這個例子有點混亂,尋找另一個。

對象總是由一個指針「鍵入」。

意味着您創建的任何對象都由定義其類型的指針定義。
Mmmh,這是很難解釋:)

希望這段代碼可以幫助你:)

+0

感謝teejay的建議......但是我的要求......必須這樣做......那就是爲什麼要求幫助。 –

+0

muah :) ...太棒了:) –

0

是sizeof()會從C。 Objective-C是c的擴展,所以你可以在c中做的所有事情,你可以在objective-c中做。

對象總是由一個指針「鍵入」。

這意味着您總是通過指向其實例的指針引用對象。我希望你熟悉C++作爲我打算用它來證明這一點幾乎...

// C++ "typed by pointer" 
Object *obj = new Object(); 
obj->member = NULL; 

// Obj-C "typed by pointer" 
NSObject *obj = [[NSObject alloc] init]; 
obj.property = nil; 


// C++ 
Object obj; 
obj.member = NULL; 

// Obj-C 
NSObject obj; // THIS WILL NOT COMPILE 

希望這有一定的道理。

編輯

我已修改意見在我原來的回答clarifiy「通過輸入 」。 - Chris Heyes 8分鐘前

「static typing」或「strong typing」對對象或數據類型的操作 施加限制。因爲「弱打字」沒有,允許運算符重載。 - Chris Heyes 5分鐘前

「泛型」的一個例子是引用一個抽象類(讀取多態性的 )。這是「弱類型」,因爲繼承的 對象可以通過作爲抽象對象類型聲明爲 編譯器的「通用」指針引用。 (注意:儘量不要混淆, 「打字」和類/數據類型,因爲這些是不同的),克里斯 - Heyes 49 秒前編輯

+0

非常感謝可愛的回覆,這些詞讓我迷惑「打字」,「靜態打字」,「一般輸入的ID」。爲什麼使用文字輸入或鍵入。請詳細說明「班級類型」。 –

+0

我修改了原始答案中的評論以澄清「輸入者」。 –

+0

「靜態類型」或「強類型」對對象或數據類型的操作施加了限制。因爲「弱打字」沒有,允許操作員超載。 –