最近在看單例模式的實(shí)現(xiàn),看到有一種利用JAVA靜態(tài)內(nèi)部類的特性來實(shí)現(xiàn),對于內(nèi)部類我還真是不了解,遂了解了一下,代碼貼上。
/** * 內(nèi)部類分為:成員內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類和靜態(tài)內(nèi)部類。 */public class Demo { /* * 1.成員內(nèi)部類:成員內(nèi)部類是最普通的內(nèi)部類, * 它的定義為位于另一個類的內(nèi)部。 */ class Inside1 { public void say() { System.out.println("Inside1 say..."); } } /* * 2.局部內(nèi)部類:局部內(nèi)部類是定義在一個方法或者一個作用域里面的類, * 它和成員內(nèi)部類的區(qū)別在于局部內(nèi)部類的訪問僅限于方法內(nèi)或者該作用域內(nèi)。 * 局部內(nèi)部類就像局部變量一樣,是不能有public、protected、private以及static修飾符的。 */ public Demo fun1() { class Woman extends Demo{ int age = 0; } return new Woman(); } /* * 3.匿名內(nèi)部類:匿名內(nèi)部類在編譯的時候由系統(tǒng)自動起名為Outter$1.class。 * 一般來說,匿名內(nèi)部類用于繼承其他類或是實(shí)現(xiàn)接口,并不需要增加額外的方法,只是對繼承方法的實(shí)現(xiàn)或是重寫 */ public void fun2(){ new JFrame().addKeyListener(new KeyListener() { public void keyTyped(KeyEvent e) {} public void keyReleased(KeyEvent e) {} public void keyPressed(KeyEvent e) {} &n