从外部类访问内部类引用

时间:2014-01-16 06:22:44

标签: java algorithm data-structures

为什么在外部类在外部类中声明内部类的引用时可以访问它,而在内部类中声明它时却无法访问它?

在下面的代码中,我声明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;

            }

}

1 个答案:

答案 0 :(得分:0)

由于head已初始化为null,因此在创建新node时,您可以将null传递给next参数:

public void additem(int n)
{
    node nw = new node(n, null); 
}

为什么您无法访问head

因为head是类node的成员,所以首先需要创建该类的实例来访问它。

<强>建议:

正如@Qadir所说,对类使用CamelCase名称,这是一种Java约定,有助于区分类和字段。