java中一个类不同对象之间的互相引用

java中,一个类的两个对象互相引用,是怎么回事?例如:Test test1=bull; Test test2=null; test1.test2=......

你要说的是类的继承关系吧?
比如:
父类:Animal
子类1:Dog
子类2:Cat
Animal a1 = new Dog();
Animal a2 = new Cat();
由于猫和狗都是动物,所以可以用动物来引用猫类和狗类。追问

不是子类,就是一个类,创建了两个对象,两个对象之间互相引用
例如:
A a1;
A a2;
A a3;
a1.a2=a3;
就是形如这样的引用,我想搞清这到底是属于哪个性质,因为最近要面试,这些概念性的东西很模糊

追答

A a1;
A a2;
A a3;
a1.a2 = a3;--这个肯定是错的。
如果:
A a1 = new A();
A a2 = new A();
a1 = a2;
这样是允许的,但a1的实例就会失去引用,游离在内存等待gc去回收,a1这时去引用a2的实例了。

追问

class Child{
Child nextChild=null;
}
public void createLink(){
Child temp;
Child ch=new Child();
temp.nextChild=ch;
temp=ch;

}

就是形如这样的引用

追答

class Child {
Child nextChild = null;
}
public void createLink() {
Child temp = new Child();
Child ch = new Child();
temp.nextChild = ch;
temp = ch;
}
我把你的类完善了,你写的有问题,没有初始化,
这个就是类的引用,一个类中有自己类的对象。但是temp最后赋值为ch的引用了。nextChild还是为null。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-04-26
  面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
  比如:类的继承关系
  父类:Animal
  子类1:Dog
  子类2:Cat
  Animal a1 = new Dog();
  Animal a2 = new Cat();
  由于猫和狗都是动物,所以可以用动物来引用猫类和狗类。
第2个回答  2011-11-02
通过需要的时候对一个对象进行调用,改变参数或触发行为,只要功能上能实现就可以了。
第3个回答  2011-11-01
这样没有吧……追问

class Child{
Child nextChild=null;
}
public void createLink(){
Child temp;
Child ch=new Child();
temp.nextChild=ch;
temp=ch;

}

就是形如这样的引用

第4个回答  2011-11-01
没有你说的这样情况,我学了这么久,从来没听过也没见过像你说的那样的现象追问

约瑟夫问题,建立链表时,上一个对象指向下一个对象,有这种用法

追答

应该不是你说的那样,应该是上个对象的属性指向下个对象的属性...个人觉得应该是这样的!

追问

class Child{
Child nextChild=null;
}
public void createLink(){
Child temp;
Child ch=new Child();
temp.nextChild=ch;
temp=ch;

}

就是形如这样的引用

追答

我也试了一下,编译不过,如果真有想你说的那样,看来我还是什么都不知道....

追问

temp.nextChild=ch;
这句代码,是根据提示信息打印出来的,输完temp,按快捷键后,选项里面就会有nextChild,是不是要用到构造函数来?

追答

要给temp初始化,空的话是给不了他的属性赋值的,我知道你这样写为什么对了,那时因为你类的对象当成了类的属性了,既然是类的属性那么类的对象就能引用,但是一个空对象引用的话就不行,这跟我们正常的代码编写中的情况是一样的......

相似回答