【问题标题】:Objective C - Difference between Class and ObjectObjective C - 类和对象之间的区别
【发布时间】:2014-11-16 23:02:16
【问题描述】:

我正在阅读一本关于 Objective C 编程的书,前 80 页是 C 的基础知识。

然后在关于 Objective C 的第一页,他们写了类、对象和实例等。 而且我不知道什么是类,什么是对象,什么是实例,什么是方法?

我再说一遍,这是 Objective C。:)

能否请一些专家给我一些例子和简单的解释如何区分它们每个是什么?

我可以在这些论坛上看到很多类似的问题,但我找不到任何与 Objective C 相关的问题。

PS:我之前没有使用 Objective C 的经验,我是一个全新的人,我知道 C 的基础知识,也了解一些 C++。

【问题讨论】:

    标签: class object methods instance


    【解决方案1】:

    您可以将类视为像Integer 这样的数据类型。

    对象是类的一个实例。

    同一个类可以存在多个实例。

    例如数字1、2、-1、0都是Integer类的对象。

    这是一个例子:

    要定义一个类,我们为一个类创建一个蓝图:

    @interface Box : NSObject
    {
        double length;   // Length of a box
        double breadth;  // Breadth of a box
    }
    

    还有一些关于init 方法的其他东西(这里没有提到)。

    接下来,我们创建两个不同的类Box的实例/对象:

    Box box1 = [[Box alloc]init]; // Create box1 object of type Box
    
    Box box2 = [[Box alloc]init]; // Create box2 object of type Box
    

    【讨论】:

    • 当有名为“MyOwnClass”的类时,我只是感到困惑,我如何才能知道该类中的对象是什么?当类是整数时更有意义,我知道整数是什么,呵呵
    • 那么,box1 和 box2 是 Box 类型,那么类 'Box' 实际上是某种数据类型?那么实例/对象不是一回事吗?
    • 我添加了一些代码来向您解释如何使用@interface 创建数据类型。当我们包含头文件以使用某些类时,这些声明存在于这些文件中。
    • @Jacob:是的,它有两个属性(长度和宽度)。但是,通过继承,它可以获取 NSObject 拥有的任何信息。但这是另一个面向对象的想法。另外,应该有一个在分配box1和box2之后调用的'init'方法,但我没有为它添加代码。您可以在 Internet 上找到示例。
    • 好吧,我书中的一个例子是:NSDate *now = [NSDate date];是 NSDate 然后是一个类和 *now 是一个对象?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 2010-12-10
    • 2014-04-08
    • 1970-01-01
    • 2010-11-15
    相关资源
    最近更新 更多