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 8//new Outer().new Inner()

解决方案 »

  1.   

    答:这哪是华为的。这是SUN JAVA 认证的题目。
    line3处可填:new Inner(); 
    line 8处或填:new Outer().new Inner() 
      

  2.   


    a dA new Inner(); // At line 3 作为外部类的一个成员存在,与外部类的属性、方法并列。
    内部类和外部类的实例变量可以共存。
    在内部类中访问实例变量:this.属性
    在内部类访问外部类的实例变量:外部类名.this.属性。
    在外部类的外部访问内部类,使用out.inner.成员内部类的特点:
    1.内部类作为外部类的成员,可以访问外部类的私有成员或属性。(即使将外部类声明为PRIVATE,但是对于处于其内部的内部类还是可见的。)
    2.用内部类定义在外部类中不可访问的属性。这样就在外部类中实现了比外部类的private还要小的访问权限。
    注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。
    对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。
    3.成员内部类不能有静态属性建立内部类对象时应注意:
    D new Outer.Inner(); At line 3 在外部类的内部可以直接使用inner s=new inner();(因为外部类知道inner是哪个类,所以可以生成对象。)
    D new Outer().new Inner() At line 8
    而在外部类的外部,要生成(new)一个内部类对象,需要首先建立一个外部类对象(外部类可用),然后在生成一个内部类对象。
    Outer o=new Outer();
    Outer.Inner in=o.new.Inner()。
      

  3.   

    public class Outer{ public void someOuterMethod() { 

    // Line 3 

    new Inner();
    } public static void main( String[]args) {

    Outer o = new Outer(); 
        
    // Line 8 

     o.new Inner();
         }    public class  Inner {}
    }两处都可以添加的!只是注意line8和line3  一个是静态  一个不是静态就好了!
    个人意见!
      

  4.   


    解释有个写反了A new Inner(); // At line 3 
    在外部类的内部可以直接使用inner s=new inner();(因为外部类知道inner是哪个类,所以可以生成对象。) 
    D new Outer.Inner(); At line 3 作为外部类的一个成员存在,与外部类的属性、方法并列。