内部类的相关问题

题目:

public class Out{

    public void somOutMethod(){

        //Line 3

    }

    public class Inner{}

    public static void main(String[] args){

        Out o = new Out();

        //Line 8

    }

}

Which instantiates an instance of Inner?

  1. new Inner();//At line 3
  2. new Inner();//At line 8
  3. new o.Inner();//At line 8
  4. new Out.Inner();//At line 8//new Out().new Inner()

正确答案:A

解析:

 1 public class Outer{
 2    public void test(){
 3         //在外部类中可直接创建内部类对象
 4         Inner inner=new Inner();
 5   }
 6    public class Inner{
 7 
 8   }
 9    public static void main(String[] args){
10       //在main方法或其他方法中,不能直接通过new Inner()创建内部类
11          Inner inner=new Inner();//是错误的
12       //要想在这些方法中创建内部类,步骤:
13          ①先创建外部类对象;
14          ②通过外部类对象.new内部类;
15         Outer outer=new Outer;
16         Inner inner=outer.new Inner();
17   }
18 }
原文地址:https://www.cnblogs.com/xie-qi/p/12913899.html