2012-06-07 52 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

“静态类型”或“强类型”对对象或数据类型的操作施加了限制。因为“弱打字”没有,允许操作员超载。 –