Java编程思想

Java内部类&嵌套类

2020-02-02  本文已影响0人  桐桑入梦

遇到一个问题,就是如何区别内部类和嵌套类。类如在某个类的定义中有这条语句:

public static GameFactory factory = new GameFactory() {
        @Override
        public Game getGame() {
            return new Checkers();
        }
    };

这里有点混淆,这个匿名内部类是不是嵌套类呢?如果是内部类,那么这个内部类和哪一个外部类关联呢?判断是否是内部类或嵌套类主要看类的定义是否使用了static,这里没有使用static,因此这里是一个内部类。这里的static表名生成了一个静态的匿名内部类对象。它和所在的外部类建立了一个关联。正常的情况下,这个对象的定义中可以使用外部类的成员(静态和非静态),但是这里这能使用静态的,因为生成的是一个静态域对象,故只能访问静态域。

上一篇下一篇

猜你喜欢

热点阅读