【问题标题】:Will an object reference to an object of a class A having another object of class B as its instance variable, also point to the object of type B?一个对象引用一个具有另一个类 B 的对象作为其实例变量的类 A 的对象,是否也指向类型 B 的对象?
【发布时间】:2019-09-01 09:05:44
【问题描述】:

一个对象引用,比如 r 是为一个类声明的到 A 类(对象 A)的模板。问题是实例变量 v 是否也将开始引用 B 的模板。(这只有在 B 类型的对象也被创建时才有可能,所以一个子问题可能是 B 类型的对象是否也被创建.)

public class A {
    B v;
}

public class B {
    //code related to B
}

public class C {
    public static void main (String[] args) {
        A r = new A();
        //Will r.v be created?
        //Will it point to a B object
    }
}

问题出在 Java 语言的上下文中。

【问题讨论】:

  • 提示:将System.out.println(r.v);添加到你的main方法中,然后执行代码,你就知道了。

标签: java class oop


【解决方案1】:

鉴于提供的代码,r.v 默认将保持为null,因为您没有为其分配任何内容。

为了让v 持有对B 类对象的引用,您必须在某处添加v = new B ();

例如,您可以在A 的构造函数中添加该语句:

public class A {
    B v;

    public A ()
    {
        this.v = new B ();
    }
}

【讨论】:

  • 好的,知道了!所以如果这个构造函数被添加并创建了一个对象,r 是否也会指向 B 类型的对象?
  • @SukritKapil 否,r 引用了 A 类型的对象。该对象包含一个实例变量v,它可能引用B 类型的对象。
猜你喜欢
  • 1970-01-01
  • 2013-09-18
  • 2015-02-13
  • 2011-06-02
  • 1970-01-01
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多