问题:你对内部类是怎样理解的?
回答:
内部类是一种比较特殊的类,它定义在另外一个类的内部,在外部类当中可以生成内部类的对象,并调用其成员。内部类最常见的使用方法是使用匿名内部类。
第一种使用方法是在模板回调模式当中,使用匿名内部类来作为回调接口的实现。在Spring的JDBC模块和Hibernate模块当中,都提供了模板类。以JDBC为例,Spring提供了一个JDBCTemplate作为模板,还提供了一系列的回调接口。在模板当中,主要提供的是JDBC访问数据库的基本流程,将SQL语句和对结果集的处理设置的回调接口当中。在使用该模板时,就可以使用匿名内部类来实现。
第二种使用方法是使用匿名内部类来实现多线程。如果不希望在一个类的外部来产生一个该类的线程,就可以再该类当中定义一个匿名内部类,实现Runnablle接口,或者是继承Thread类。因为匿名内部类没有名字,并且可以将其权限设置为private,所以说不可能在别的地方生成匿名内部类的对象。这样就可以很好的隐藏调用线程的run()函数。
总体来说最常用的内部类是匿名内部类。这种用法是专门供特定问题用的,一次性的类。好处是它能把解决某个问题的代码全都集中到一个地方。