問題:你對內部類是怎樣理解的?
回答:
內部類是一種比較特殊的類,它定義在另外一個類的內部,在外部類當中可以生成內部類的對象,並調用其成員。內部類最常見的使用方法是使用匿名內部類。
第一種使用方法是在模板回調模式當中,使用匿名內部類來作爲回調接口的實現。在Spring的JDBC模塊和Hibernate模塊當中,都提供了模板類。以JDBC爲例,Spring提供了一個JDBCTemplate作爲模板,還提供了一系列的回調接口。在模板當中,主要提供的是JDBC訪問數據庫的基本流程,將SQL語句和對結果集的處理設置的回調接口當中。在使用該模板時,就可以使用匿名內部類來實現。
第二種使用方法是使用匿名內部類來實現多線程。如果不希望在一個類的外部來產生一個該類的線程,就可以再該類當中定義一個匿名內部類,實現Runnablle接口,或者是繼承Thread類。因爲匿名內部類沒有名字,並且可以將其權限設置爲private,所以說不可能在別的地方生成匿名內部類的對象。這樣就可以很好的隱藏調用線程的run()函數。
總體來說最常用的內部類是匿名內部類。這種用法是專門供特定問題用的,一次性的類。好處是它能把解決某個問題的代碼全都集中到一個地方。