PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava
作者回复: 构造一个合适的场景,铺垫太多。而且现在讲解的内容还比较少,后面在会有些例程里使用这些类,而且用的比较贴切。我大概举几个例子,涉及到一些现在没讲的点 静态内部类,可以用来实现接口,但是这个实现仅供自己内部使用。比如说,如果一个Map的value是一种叫做 Item 的接口,那么某个类可能使用一个自己的静态内部类实现这个接口,然后创建instance放到map里。 当然静态内部类还有一个用处是实现单例模式。这个属于“取巧”,和语法本身无关,和 JVM 初始化 class 有关。 静态内部类还有一个用途就是创建一些自己内部使用的数据结构,有兴趣可以看看 JDK 里 java.util.HashMap的源代码,里面用到了静态内部类封装数据 成员内部类和静态内部类一样,如果需要跟外部类的成员变量互相操作,就可以考虑使用成员内部类 局部内部类呢,说实话确实用的比较少。可能有时候调用一些方法,方法的参数是某个接口(没错又是接口),没办法就弄一个局部内部类实现一下接口,然后调用方法。但是这个时候呢,其实用匿名类更方便,所以局部内部类很尬。 匿名类也一样,就是为了实现接口,后面创建线程的Runnable接口实现的时候会用到很多。 最后还是要补充一句。语法学了要多用,代码要多些,些的时候多想。否则只关注语法,不去用学到的语法解决实际问题,就是纸上谈兵了。多写代码,多用代码解决问题,解决的问题多了,见到的情况多了,就会遇到各种各样的场景,到时候水到渠成会知道哦哦哦哦哦哦这个时候用那个类会比较方便。
作者回复: 我也是这个感觉~