为什么在外部类在外部类中声明内部类的引用时可以访问它,而在内部类中声明它时却无法访问它?
在下面的代码中,我声明head作为内部类的引用,我试图从外部类访问但我无法做到。如果我在外部类中声明相同的引用它工作正常。为什么会这样?
public class QueueUsingLL {
public void additem(int n)
{
node nw = new node(n,head);
if(head == null)
{
head = nw;
}
else
{
nw.next = head;
head =nw;
}
}
public class node
{
int item;
node next;
node head= null;
node(int item,node next)
{
this.item = item;
this.next = next;
}
}
答案 0 :(得分:0)
由于head
已初始化为null
,因此在创建新node
时,您可以将null
传递给next
参数:
public void additem(int n)
{
node nw = new node(n, null);
}
为什么您无法访问head
?
因为head
是类node
的成员,所以首先需要创建该类的实例来访问它。
<强>建议:强>
正如@Qadir所说,对类使用CamelCase名称,这是一种Java约定,有助于区分类和字段。