天天看點

Java程式設計思想之-匿名内部類

本文通過一個例題來加深對匿名内部類的認識

題目:

<code>package</code> <code>面向對象;</code>

<code>interface</code> <code>In</code>

<code>{</code>

<code>    </code><code>void</code> <code>method();</code>

<code>}</code>

<code>class</code> <code>Test</code>

<code>    </code><code>//補足代碼,通過匿名内部類</code>

<code>    </code> 

<code>public</code> <code>class</code> <code>UnknownNameClass {</code>

<code>    </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) {</code>

<code>        </code><code>Test.function().method();</code>

<code>    </code><code>}</code>

分析這句話Test.function().method();

在Test類中有一個靜态的方法function()無參,傳回值先不确定,且這個方法會調用method方法,說明function的傳回值是一個可以調用method方法的對象,那麼就是In的子類。在function應該傳回In的一個匿名子類對象。

補充代碼如下:

<code>public</code> <code>static</code> <code>In function()</code>

<code>    </code><code>{</code>

<code>        </code><code>return</code> <code>new</code> <code>In()</code>

<code>        </code><code>{</code>

<code>            </code><code>public</code> <code>void</code> <code>method() {</code>

<code>                </code><code>// TODO Auto-generated method stub</code>

<code>                </code> 

<code>            </code><code>}</code>

<code>        </code><code>};</code>

向上向下,正向逆向推理思想是程式設計中十分的必要,需要加強練習。

      本文轉自屠夫章哥  51CTO部落格,原文連結:http://blog.51cto.com/4259297/1656474,如需轉載請自行聯系原作者