2012-06-13 83 views
0

听起来不像公案,只是想知道是否有关于类和对象的明确规则。我曾经认为课程是蓝图,而对象则是他们的创造。但如果一个蓝图组合创造了另一个蓝图,那么后一个蓝图是否也会成为一个对象?OOP - 如果一个类创建一个类的实例,该实例是否也成为一个对象?

+0

你的问题非常含糊。这是什么语言?你谈论“蓝图的组合创造了另一个蓝图”,这将意味着一个班级创建一个新班级,而不是一个班级的实例,这在所有语言中都不是普遍可行的。 – lanzz

+0

也许我不明白这个问题......如果有一个实例,那么这个实例就是一个对象。创建它并不重要。任何在堆上实例化的东西都是一个实例,并且是一个对象。 – David

+0

不依赖于语言。一般的OOP。 –

回答

1

你的问题似乎有点哲学...... :)“对象”和“实例”在OOP中是非常同义的。

如果我理解正确你的问题,你的疑问是:“的对象仍然是一个对象也如果另一类是不是界定其类型同样创造出来的?”

答案是“是”,一个实例是继其类中定义的“样板”创建一个对象,但有很多原因,你可以以间接的方式实例化一个类,例如静态方法(例如工厂类的工厂方法),而不是直接使用new声明。

如果你想看到一些来,在Java中一个简单的例子可以是:

public class MyClass { 
    public MyClass(){} 
} 

public class MyClassFactory{ 

    public getInstance(){ 
     return new MyClass(); 
    } 
} 

在这种情况下,例如不受MyClass直接返回,而是从它的工厂类。然而它也是一个对象......

0

在我所知的几乎所有的OO环境中,一个实例是相同的作为对象。

对象/实例是由客户端(例如new)还是由类(例如单件或工厂)创建并不重要。

如果您在类的上下文中讨论蓝图,那么从蓝图创建蓝图就是继承,而不是实例化。

+0

所以如果一个类的组合创建一个新的类,那将是一个继承,而不是一个对象? –

+0

@Demetriius,是的,这是基本的想法。 – paxdiablo

相关问题