日期:2014-05-20  浏览次数:20660 次

2个问题,1个关于构造器,另1个关于内部类
(1).class   Z   {}  
    class   A   extends   Z  
    {   void   A()   {}   }  
    这段代码里编译器为什么给A提供1个默认的构造器?构造器没有返回值,用void修饰不应该编译错误吗?
(2).   Given:  
1.   public   class   Outer{  
2.   public   void   someOuterMethod()   {  
3.   //   Line   3  
4.   }  
5.   public   class   Inner{}  
6.   public   static   void   main(   String[]argv   )   {  
7.   Outer   o   =   new   Outer();  
8.   //   Line   8   9.   }  
10.   }   Which   instantiates   an   instance   of   Inner?    
A.   new   Inner();   //   At   line   3  
B.   new   Inner();   //   At   line   8  
C.   new   o.Inner();   //   At   line   8  
D.   new   Outer.Inner();   //   At   line  
这道题为什么选A?B为什么不对?
另外在1个类的内部任何位置都可以声明这个类自己的对象吗?


------解决方案--------------------
(1)那是方法不是构造器。
(2)放到内部类中会提示没有对应封装实例,在主类中没有问题,相当于创建内部类的实例吧。