class Node{
 int a;
 Node next;  //为什么这里可以用Node声明next变量,这个时候还不是没存在Node类,编译器是怎么处理得(原理上)?
}

解决方案 »

  1.   

    Node next; 以node类型 申请一个变量  这里node是类,就是申请一个对象了
      

  2.   

    编译器是保存就编译的。所以就可以用Node声明next变量
      

  3.   

    这里只是模板,类就是模板,只有newInstance后才有对象的产生,所以没矛盾。
      

  4.   

    晕!这样的问题还需要问吗??没用IDE结果还是一样的啊!
      

  5.   

    class Node{
    int a;
    Node next;  //为什么这里可以用Node声明next变量,这个时候还不是没存在Node类,编译器是怎么处理得(原理上)?
    //没IDE和你手工编译的话,你这里没编译,只是个普通的文件,那关编译器什么事啊??
    }
      

  6.   

    说的对啊,如果用编译器,你保存一下就自动编译,所以就没有报错了。如果没有IDE那你那样学也不会报错啊。
      

  7.   

    没有错误首先 Node 是一个对象 你给对象起了一个 Node起一个叫 next 别名 怎么会报错?
      

  8.   

    你可以这样看,编译器的编译过程是需要扫描几次的,在扫描到class Node时,编译器就会知道现在增加了一个Node这样的类然后在Node next的时候,就会发现这个Node是已经定义了(虽然它结构还未完全读取完),这样是没有错误的
      

  9.   

    就是定义一个变量
    你要说对象也可以,只是堆中没分内存罢了。很正常的 JAVA版数据结构经常这样用!
    楼主可以去看看