不要听起来像公案,但只是想知道是否有关于类和对象的明确规则。我曾经认为类是蓝图,对象是它们的创造。但如果蓝图的组合创造了另一个蓝图,那么后一个蓝图也会成为一个对象吗?
答案 0 :(得分:1)
你的问题似乎有点哲学...... :)“对象”和“实例”在OOP中是完全同义的。
如果我正确地理解了你的问题,你的疑问是:“如果一个对象仍然是一个对象,如果由另一个不同的类创建它定义它的类型?”
答案是“是”,实例是在其类定义的“模型”之后创建的对象,但出于多种原因,您可以以间接方式实例化类,例如静态方法(例如工厂类的工厂方法),而不是直接使用new
语句。
如果你想看到一些,Java中的一个简单例子可能是:
public class MyClass {
public MyClass(){}
}
public class MyClassFactory{
public getInstance(){
return new MyClass();
}
}
在这种情况下,实例不是由MyClass
直接返回的,而是来自其工厂类。然而它也是一个对象......
答案 1 :(得分:0)
在我所知道的几乎每个OO环境中,一个实例与对象相同。
对象/实例是由客户端(例如使用new
)还是由类(例如使用单例或工厂)创建的并不重要。
如果您正在讨论类的上下文中的蓝图,那么从蓝图创建蓝图就是继承,而不是实例化。