是有可能在这个 constructor in UML sequence diagram对象实例化另一个对象?
从另一个对象 看看实例化对象是否这种情况可能在编程语言如Java?
这种情况在建模语言(如UML)中可能吗?
是有可能在这个 constructor in UML sequence diagram对象实例化另一个对象?
从另一个对象 看看实例化对象是否这种情况可能在编程语言如Java?
这种情况在建模语言(如UML)中可能吗?
如果我明白你在问什么,是的,你可以通过继承或组合来做到这一点。
继承:
ClassB extends ClassA {
public ClassB() {
super(); // calls ClassA constructor
// do more stuff
}
}
组成:
ClassX {
private ClassY y;
public ClassX() {
y = new ClassY(); // calls ClassY constructor
// do more stuff
}
}
祝你好运!
我不同意第一个。在UML图中有两个对象。在VikingSteve的代码中,只有一个对象被创建。我的理解是,即使涉及两个类,为一个对象绘制两条生命线也不是很好的UML。 – 2013-02-21 22:39:58
那么是的,你是对的,第二个例子会更合适:) – vikingsteve 2013-02-21 22:41:47
是的,这是Java的重要组成部分,以及任何面向语言的对象。
如果你有两个对象,A和B,B是A的子类,你可以实例化一个使用B:
A baseObject = new B();
这里的关系表示 'B' 是一个 'A':这意味着在任何你有A的地方,你可以在它的地方实例化一个B,因为B是A的一个合适的子类型。注意,如果你像这样使用它,你仍然只能使用A的接口。
使用列表时可以看到Java中的一个实际示例。 Java中的List类是从Collection派生的抽象容器类型。在这个例子中,列表是我们的'A'类型。有许多不同种类的列表,例如LinkedList和ArrayList。 LinkedList和ArrayList是List的适当子类型,在本例中为'B'类型。所以,你可以初始化列表作为其任何亚型:
List<String> stringList = new ArrayList<String>();
或
List<String> stringList = new LinkedList<String>();
希望这是一些帮助。
是的,面向对象编程的整个概念取决于对象能够创建其他对象。
在Java中,我们通过调用构造函数(如new ClassB()
)为我们创建一个新的ClassB对象来创建实例。如果我们想让ClassA实例化ClassB,我们只需要让ClassA调用ClassB的构造函数即可。下面是我们如何会做它在Java中
public class ClassA{
public ClassA(){
ClassB instance1 = new ClassB();
}
}
在这里,我做了它,这样,当ClassA的被实例化(具有这就是所谓的构造函数),它创造的ClassB的称为INSTANCE1一个新的实例。
你在问是否可以从Java中的另一个对象实例化对象?考虑到每个程序都需要一个对象,我当然希望如此。 – 2013-02-21 22:31:45
关于你的第二个问题,你实质上是问UML中的这个例子是否可以用UML表达。很难看出答案可能不是“是”。我认为你需要澄清这个问题。 – 2013-02-21 22:37:26