Java内部类&嵌套类
2020-02-02 本文已影响0人
桐桑入梦
遇到一个问题,就是如何区别内部类和嵌套类。类如在某个类的定义中有这条语句:
public static GameFactory factory = new GameFactory() {
@Override
public Game getGame() {
return new Checkers();
}
};
这里有点混淆,这个匿名内部类是不是嵌套类呢?如果是内部类,那么这个内部类和哪一个外部类关联呢?判断是否是内部类或嵌套类主要看类的定义是否使用了static,这里没有使用static,因此这里是一个内部类。这里的static表名生成了一个静态的匿名内部类对象。它和所在的外部类建立了一个关联。正常的情况下,这个对象的定义中可以使用外部类的成员(静态和非静态),但是这里这能使用静态的,因为生成的是一个静态域对象,故只能访问静态域。