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

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

例如,

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类型。此外,作为扩展,为什么实例变量总是首先声明。如果我们定义一些实例变量,然后是一些方法,那么更多实例变量和更多方法会发生什么。

java inner-classes
1个回答
1
投票

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

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

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