在定义内部类之前,为什么要在外部类中声明一个实例变量(类型为内部类?)?

问题描述 投票: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; }
    在第3行中,我很困惑为什么在定义第5行中的Node类之前,为什么能够创建Node类型的实例变量。
  1. 此外,假设我想在Linkedlist类型的Node类中创建一个实例变量,它会让我这样做吗?
  • 在第20行的push方法中,当它创建一个新的Node实例时,是否还会创建一个新的LinkedList实例,因为Node是LinkedList的内部类?
  • class LinkedList {节点头; // line3类Node // line5 {int data;节点下一个; Node(int d){data = d; next = null; ...
  • java inner-classes singly-linked-list
    2个回答
    0
    投票
    类LikendList会在编译时首先检查其是否在该类的外部或内部的Node类,然后在编译LikendList之后编译Node类。如果在节点内提供一个LikendList,它将执行相同的操作并进行编译,但是在运行时可能会遇到循环引用错误

    0
    投票
    您可以这样做,因为Java编译器是

    smart

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