最近在看單例模式的實現(xiàn),看到有一種利用JAVA靜態(tài)內(nèi)部類的特性來實現(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)部類用于繼承其他類或是實現(xiàn)接口,并不需要增加額外的方法,只是對繼承方法的實現(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
        
		

網(wǎng)友評論