今天看到一代码,该代码实例化了一个内部类,但却不用先实例化其外部类。于是感到奇怪,因为以前实例化内部类都是需要类似的格式: 
- Outclass.Innerclass ic=new Outclass.new Innerclass();
 
  复制代码 但外部类想实例化静态内部类却不能这么写:- package com.kid.innerclass;
 
  
- import com.kid.innerclass.Outclass.Innerclass;
 
  
- public class Outclass {
 
  
-         public static class Innerclass {
 
  
-                 Innerclass() {
 
  
-                         System.out.println("Innerclass is comming");
 
 -                 }
 
 -         }
 
 - }
 
  
- class Test1 {
 
  
-         public static void main(String args[]) {
 
 -                 Innerclass ic = new Innerclass();
 
 -                 Outclass.Innerclass ic2 = new Outclass.Innerclass();
 
 -                 Innerclass ic3 = new Outclass.Innerclass();
 
  
-                 /*
 
 -                  * Innerclass ic4=new Outclass().new Innerclass();//这种写法错误
 
 -                  */       
 
 -         }
 
  
- }
 
  复制代码 
问题来了,为什么不可以这么写: 
- Outclass.Innerclass ic=new Outclass.new Innerclass();
 
  复制代码 它和程序上其他三种写法有何区别呢? 
 
 
 
 
 |