为什么我们可以在定义类之前声明嵌套类的变量

时间:2017-12-21 17:23:05

标签: java inner-classes

例如,

public class Stack<Item> implements Iterable<Item>
{
 private Node first; // top of stack (most recently added node)
 private int N;      // number of items
 private class Node
 {  // nested class to define nodes
  Item item;
  Node next; 
 }

为什么我们可以在定义Node之前首先声明Node类型。此外,作为扩展,为什么实例变量总是首先声明。如果我们定义一些实例变量,然后是一些方法,然后是更多的实例变量,以及更多的方法,会发生什么。

1 个答案:

答案 0 :(得分:1)

因为在解析整个类之前没有尝试解析。出于同样的原因,您可以调用尚未定义的类方法。

并不总是先声明实例变量。您可以按照您喜欢的任何顺序声明事物,仅受初始化顺序约束。