document.write('
A
[解析] 在Java语言中,可以把一个类定义到另外一个类的内部,在类里面的这个类就叫作内部类,外面
的类叫作外部类。在这种情况下,这个内部类可以被看成外部类的一个成员(与类的属性和方法类似)。
还有一种类被称为顶层(Top-level)类,指的是类定义代码不嵌套在其他类定义中的类。
 内部类主要有以下四种:静态内部类(Static Inner Class)、成员内部类(Member Inner Class)、局部
内部类(Local Inner Class)和匿名内部类(Anonymous Inner Class)。它们的定义方法如下:
class outerClass{
static class innerClass{}//静态内部类
}
class outerClass{
class irmerClass{}//成员内部类(普通内部类)
}
class outerClass{
public void menberFunction() {
class innerClass{
}//局部内部类
}
}
public class MyFrame extends Frame
{//外部类
public MyFrame() {
addWindowListener(new WindowAdapter()
{//匿名内部类
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
}
}
 静态内部类是指被声明为static的内部类,它可以不依赖于外部类实例而被实例化,而通常的内部类
需要在外部类实例化后才能实例化。静态内部类不能与外部类有相同的名字,不能访问外部类的普通成
员变量,只能访问外部类中的静态成员和静态方法(包括私有类型)。
 一个静态内部类,如果去掉“static”关键字,就成为成员内部类。成员内部类为非静态内部类,它
可以自由地引用外部类的属性和方法,无论这些属性和方法是静态的还是非静态的。但是它与一个实例
绑定在了一起,不可以定义静态的属性和方法。只有在外部的类被实例化后,这个内部类才能被实例
化。需要注意的是,非静态内部类中不能有静态成员。
 局部内部类指的是定义在一个代码块内的类,它的作用范围为其所在的代码块,是内部类中最少使用
到的一种类型。局部内部类像局部变量一样,不能被public、protected、private以及static修饰,只
能访问方法中定义为final类型的局部变量。对一个静态内部类,去掉其声明中的“static”关键字,将
其定义移入其外部类的静态方法或静态初始化代码段中就成为局部静态内部类。对一个成员类,将其定
义移入其外部类的实例方法或实例初始化代码中就成为局部内部类。局部静态内部类与静态内部类的基
本特性相同。局部内部类与内部类的基本特性相同。
 匿名内部类是一种没有类名的内部类,不使用关键字class、extends和implements,没有构造方
法,它必须继承(Extends)其他类或实现其他接口。匿名内部类的一般好处是代码更加简洁、紧凑,但
带来的问题是易读性下降。它一般应用于GUI(Graphical User Interface,图形用户界面)编程中实现事
件处理等。
 对于本题而言,它是一个普通的内部类,这个内部类必须在外部类实例化以后才能实例化,因此,对
于选项A而言,someOuterMethod是Outer的实例方法,可以访问Inner类,因为在调用
someouterMethod时,外部类一定是已经被实例化了,因此,选项A正确。对于选项B、选项C和选项
D,它们都试图在没有实例化外部类的情况下直接去实例化内部类,因此,是错误的。如果把这个内部
类改成静态内部类,那么,选项B、选项C和选项D就都正确。

 所以,本题的答案为A。 

');