Java--內部類

BtWangZhi發表於2017-10-10

1 訪問規則:
非靜態內部類中不能含有靜態成員
靜態成員不能訪問非靜態成員(該條規則不僅僅適用於內部類)
靜態內部類是屬於外部類的類相關,不屬於任何例項。

程式碼說明:

public class TextMain04 {
    /**
     * 在非靜態方法中測試與內部類的訪問規則
     */
    public void text01() {
        /**
         * 非靜態內部類
         */
        new InnerClass().text01();

        /**
         * 靜態內部類
         */
        // 靜態內部類可直接通過類名呼叫靜態方法,
        new TextMain04.StaticClass().text02();
        // 也可採用如下的方法
        new StaticClass().text01();
        new StaticClass().text02();
    }

    /**
     * 在靜態方法中測試與內部類的訪問規則
     */
    public static void text02() {
        /**
         * 非靜態內部類
         */
        // 靜態方法中不能呼叫非靜態內部類中的方法
        //new InnerClass().text01();

        /**
         * 靜態內部類
         */
        // 靜態內部類可直接通過類名呼叫靜態方法,
        StaticClass.text02();
        // 也可採用如下的方法
        new StaticClass().text01();
        new StaticClass().text02();
    }

    /**
     * 非靜態內部類
     * 
     * @author Tang
     *
     */
    public class InnerClass {
        public void text01() {
        }
        // 非靜態內部類中不能存在靜態方法
        // public static void text02(){}
    }

    /**
     * 靜態內部類
     * 
     * @author Tang
     *
     */
    public static class StaticClass {
        public void text01() {
        }

        public static void text02() {
        }
    }
}

相關文章