• 时间是最真的答案
    2019-07-14
    这些特殊的类用在什么场景?个人感觉这样讲不具体,看过之后就忘了,结合不到实际应用场景。比如静态内部类,成员内部类,局部内部类,匿名类都是用在什么场景的

    作者回复: 构造一个合适的场景,铺垫太多。而且现在讲解的内容还比较少,后面在会有些例程里使用这些类,而且用的比较贴切。我大概举几个例子,涉及到一些现在没讲的点

    静态内部类,可以用来实现接口,但是这个实现仅供自己内部使用。比如说,如果一个Map的value是一种叫做 Item 的接口,那么某个类可能使用一个自己的静态内部类实现这个接口,然后创建instance放到map里。
    当然静态内部类还有一个用处是实现单例模式。这个属于“取巧”,和语法本身无关,和 JVM 初始化 class 有关。
    静态内部类还有一个用途就是创建一些自己内部使用的数据结构,有兴趣可以看看 JDK 里 java.util.HashMap的源代码,里面用到了静态内部类封装数据

    成员内部类和静态内部类一样,如果需要跟外部类的成员变量互相操作,就可以考虑使用成员内部类

    局部内部类呢,说实话确实用的比较少。可能有时候调用一些方法,方法的参数是某个接口(没错又是接口),没办法就弄一个局部内部类实现一下接口,然后调用方法。但是这个时候呢,其实用匿名类更方便,所以局部内部类很尬。

    匿名类也一样,就是为了实现接口,后面创建线程的Runnable接口实现的时候会用到很多。


    最后还是要补充一句。语法学了要多用,代码要多些,些的时候多想。否则只关注语法,不去用学到的语法解决实际问题,就是纸上谈兵了。多写代码,多用代码解决问题,解决的问题多了,见到的情况多了,就会遇到各种各样的场景,到时候水到渠成会知道哦哦哦哦哦哦这个时候用那个类会比较方便。

    
     5
我们在线,来聊聊吧