JAVA靜態內部類

靜態內部類作爲類的靜態成員存在於某個類中,也稱爲嵌套類。在創建靜態內部類時不需要外部類對象的存在。其實質是一個放置在某個類內部的普通類。要定義一個靜態類只需在類的定義中加入關鍵字static即可。

 package JAVA_Project_01_05;

//靜態內部類作爲類的靜態成員存在於某個類中,也稱爲嵌套類。在創建靜態內部類時不需要外部類對象的存在。其實質是一個放置在某個類內部的普通類。要定義一個靜態類只需在類的定義中加入關鍵字static即可。

//使用靜態內部類的技術要點如下:
//
//· 聲明靜態內部類的語法格式:staticclass類名。靜態內部類不可以用private進行定義。
//
//· 關鍵字static說明靜態內部類在創建對象時不依賴於外部對象的存在,並不是說這個類本身是靜態的。
//
//· 靜態內部類只能訪問外部類的靜態成員,不能訪問外部類的非靜態成員。它可以定義靜態或者非靜態的成員。
//
//· 靜態內部類的對象可以直接生成,不需要外部類的對象來生成,可以看作靜態內部類是一頂級類。


public class TextStaticInnerClass {//操作靜態內部類的類

    private static int num = 1;

    private int count = 10;

    public static void outer() {

        System.out.println("外部類的靜態方法!");

    }

    public void outer_1() {

        System.out.println("外部類的非靜態方法!");

    }

    static class Inner {

        static int inner_num = 100;

        int inner_count = 200;

        static void inner_outer() {

            System.out.println("訪問外部類的靜態成員" + num);

            outer();//訪問外部類的靜態方法

        }

        void inner_outer_1() {

            System.out.println("靜態內部類的非靜態方法");

            outer();//訪問外部類的靜態方法

        }

    }

    public void outer_2() {//外部類訪問靜態內部類的靜態成員:內部類.靜態成員

        System.out.println(Inner.inner_num);

        Inner.inner_outer();//訪問靜態內部類的靜態方法

        Inner inner = new Inner();//實例化對象

        inner.inner_outer_1();//訪問靜態內部類的非靜態方法

    }

    public static void main(String[] args) {//Java程序主入口處

        TextStaticInnerClass inner = new TextStaticInnerClass();

        inner.outer_2();//調用方法

    }

}

/*
(1)在程序類中定義靜態變量、非靜態變量、靜態方法、非靜態方法以及一個靜態內部類。在靜態內部類中定義靜態變量、非靜態變量、靜態主法以及非靜態方法。默認的非靜態方法的訪問修飾符爲protected,可以被該類所在的包內成員以及非包內的子類成員訪問。
(2)在靜態內部類的方法中只能訪問外部類的靜態變量及靜態方法。外部類訪問靜態內部類的語法格式爲:靜態內部類.靜態變量(或靜態方法())。如果外部類訪問內部類的非靜態成員,需要先實例化內部類。
 */


發佈了71 篇原創文章 · 獲贊 12 · 訪問量 4543
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章