数组对象和普通对象初始化

我有3个对象root1,root2,root3 ,它们出现在root[] (Array Object)中,它是一个对象的集合。

我已经使用root[0]初始化了Node类。 所以我能够通过root[0].data访问Node类的值,但我希望root1.data也应该访问同一个类,因为root[0]=root1 ,但是我无法访问该值。

为了实现我的逻辑,我还需要做些什么吗? 我有以下程序:

 class a { static Node root1,root2,root3; public static void main(String args[]) { Node root[]={root1,root2,root3}; for(int i=0;i<root.length;i++) root[i]=new Node(value,null); System.out.println(root[i].data);//It is printing Correctly System.out.println(root1.data);//It is printing null value } public static class Node { int value; Node next; Node(int value,Node next) { this.value=value; this.next=next; } } } 

我有3个对象root1,root2,root3

不,你没有。 你有三个变量,它们都是null。

它们存在于root[]

root[]没有任何内容,但初始化时除了三个空值。

我使用root[0]初始化了Node

您已实例化 Node类,并将引用存储到root[0]

 // It is printing null value. 

使用此代码,它应该抛出NullPointerException

 root[0]=root1 

不,不。 你在循环中覆盖它,并且无论如何当你进行(无意义的)数组初始化时, root1为null,因为你没有初始化它。