我如何在外部类中声明实例变量(内部类类型的变量?

问题描述 投票:0回答:2

我想在定义内部类之前在外部类中声明一个实例,但是在代码中导致了它的原因:

class LinkedList 
{ 
    Node head; //line3

    class Node //line5
    { 
        int data; 
        Node next; 
        Node(int d) 
        { 
            data = d; 
            next = null; 
        } 
    }


    public void push(int new_data) 
        { 

            Node new_node = new Node(new_data); //line 20

            new_node.next = head; 

            head = new_node; 
        } 
  1. 在第3行中,我很困惑为什么在定义第5行中的Node类之前,为什么能够创建Node类型的实例变量。
  2. 此外,假设我想在Linkedlist类型的Node类中创建一个实例变量,它会让我这样做吗?
  3. 在第20行的push方法中,当它创建一个新的Node实例时,是否还会创建一个新的LinkedList实例,因为Node是LinkedList的内部类?

我想在定义内部类之前在外部类中声明一个实例,但是在代码中引起了它的原因:class LinkedList {Node head; // line3类节点// line5 {...

java inner-classes singly-linked-list
2个回答
0
投票

类LikendList会在编译时首先检查其是否在该类的外部或内部的Node类,然后在编译LikendList之后编译Node类。如果在节点内提供一个LikendList,它将执行相同的操作并进行编译,但是在运行时可能会遇到循环引用错误


0
投票

您可以这样做,因为Java编译器是smart

© www.soinside.com 2019 - 2024. All rights reserved.