Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对象实例化另一个对象?_Java_Object_Instantiation_Uml - Fatal编程技术网

Java 对象实例化另一个对象?

Java 对象实例化另一个对象?,java,object,instantiation,uml,Java,Object,Instantiation,Uml,是否可以从另一个对象实例化对象 看看这个 这种情况在Java等编程语言中可能吗 这种情况在UML等建模语言中可能吗?如果我理解您的要求,是的,您可以通过继承或组合来实现 继承: ClassB extends ClassA { public ClassB() { super(); // calls ClassA constructor // do more stuff } } 组成: ClassX { private ClassY

是否可以从另一个对象实例化对象 看看这个

这种情况在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
    }
}

祝你好运

是的,这是Java的重要组成部分,任何面向对象的语言都是如此

如果有两个对象A和B,并且B是A的子类,则可以使用B实例化A:

A baseObject = new B();
这里的关系表示“B”是“A”:这意味着在任何有A的地方,都可以在其位置实例化A B,因为B是A的适当子类型。请注意,如果这样使用A的接口,则仍然只能使用A的接口

当使用列表时,可以看到Java中的一个真实示例。Java中的List类是从集合派生的抽象容器类型。在本例中,列表是我们的“A”类型。有许多不同类型的列表,例如LinkedList和ArrayList。LinkedList和ArrayList是列表的正确子类型,在本例中为“B”类型。因此,您可以将列表初始化为其任何子类型:

List<String> stringList = new ArrayList<String>();
List-stringList=new-ArrayList();

List-stringList=new-LinkedList();

希望这能有所帮助。

是的,面向对象编程的整个概念取决于对象是否能够创建其他对象

在Java中,我们通过调用构造函数来创建实例,比如
newclassb()
,它为我们实例化了一个新的ClassB对象。如果我们想让ClassA实例化ClassB,我们只需要让ClassA调用ClassB的构造函数。下面是我们在Java中的实现方法

public class ClassA{
    public ClassA(){
        ClassB instance1 = new ClassB();
    }
}

在这里,我这样做是为了当ClassA被实例化(调用了它的构造函数)时,它会创建一个名为instance1的ClassB的新实例。

您是在问是否可以从Java中的另一个对象实例化一个对象?考虑到每个程序都需要一个对象,我当然希望如此。关于你的第二个问题,你本质上是在问UML中的这个例子是否可以用UML表示。除了“是”之外,很难想象答案会是什么。我认为你需要澄清这个问题。我不同意第一个。在UML图中有两个对象。在VikingSteve的代码中,只创建了一个对象。我的理解是,即使涉及两个类,为一个对象绘制2条生命线是不好的UML
public class ClassA{
    public ClassA(){
        ClassB instance1 = new ClassB();
    }
}