国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

內部類

2019-11-08 01:49:43
字體:
來源:轉載
供稿:網友

大部分時候,類被定義在一個獨立的class中。在某些情況下,也會把一個類放在另一個類中的內部定義,這個定義在其他類內部的類被稱為內部類。包含內部類的類也被稱為外部類。

1、內部類提供了更好的封裝,可以把內部類隱藏在外部類之內,不允許同一個包中的其他類訪問該類。

2、內部類成員可以直接訪問外部類私有數據,但外部類不能訪問內部類的實現細節。

3、匿名內部類僅適用于需要使用一次的類。

4、內部類比外部類可以多3個修飾符:PRivate、protected、static

5、非靜態內部類不能擁有靜態成員

非靜態內部類:

定義格式

public class OuterClass{         class innerClassA{}         public class innerClassB{}	}

從上面代碼可以看出,內部類在外部類成員位置,所以說內部類也可以訪問外部類的成員。

//TODO 內部類定義并在外部類使用,靜態方法不能new內部類

class OuterClass{    class InnerClass    {    }    public static void main(String[] args){        InnerClass innerClass = new InnerClass();    }} 

靜態內部類

使用static修飾的一個內部類,則這個內部類屬于所在外部類本身,而不屬于外部類創建出來的某個對象,因此使用static修飾的內部類被稱為類內部類,有的地方也稱為靜態內部類。

靜態內部類可以包含靜態成員,也可以包含非靜態成員。根據靜態成員訪問規則,靜態內部類的方法或代碼塊不能訪問外部類的實例成員,只能訪問外部類的靜態成員。

//TODOclass OuterClass{     static String school;    static class InnerClass    {        static{            school= "abcd";        }        String name;        String age;        static String address;    }    public static void main(String[] args){        InnerClass innerClass = new InnerClass();    }}

具有內部類的類被編譯后,編譯文件格式如下:

使用內部類

定義格式:

         外部類.內部類變量名= new外部類().new 內部類();

        

class OuterClass{    class InnerClass    {        String name;        public void printName(){            System.out.println(name);        }    } }class TestInnerClass{    public static void main(String[] args){        OuterClass.InnerClassinnerClass = new OuterClass().new InnerClass();        innerClass.name= "abcd";        innerClass.printName();    }}

使用靜態內部類

         外部類.內部類 變量名=new 外部類.內部類();

 

class OuterClass{    static class InnerClass    {        String name;        public void printName(){            System.out.println(name);        }    } }class TestInnerClass{    public staticvoid main(String[] args){        OuterClass.InnerClassinnerClass =  newOuterClass.InnerClass();        innerClass.name= "abcd";        innerClass.printName();    }}

局部內部類

 

class OuterClass{    public void method(){        class InnerClass        {            Stringname = "abcd";        }        InnerClass in = new InnerClass();        System.out.println(in.name);    } }class TestInnerClass{    public static void main(String[] args){        OuterClass out = new OuterClass();        out.method();    }}

匿名內部類

匿名內部類沒有類名,適用于:僅使用一次的時候。New 該類的父類或接口代表該匿名內部類。

class OuterClass{    public void method(){        new InnerClass(){            public void method(){                System.out.println("這是一個匿名內部類");            }        }.method();    } }class InnerClass{    void method(){};} 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 民勤县| 敖汉旗| 老河口市| 剑川县| 安远县| 沙洋县| 建瓯市| 米泉市| 固镇县| 龙川县| 西安市| 司法| 安达市| 东安县| 贺州市| 和平区| 元朗区| 礼泉县| 吉首市| 五大连池市| 阿坝县| 呼玛县| 安远县| 黔西县| 东丽区| 卫辉市| 育儿| 龙胜| 永清县| 邛崃市| 山阳县| 三门县| 诸暨市| 临汾市| 旅游| 马龙县| 拜泉县| 加查县| 饶阳县| 科技| 高密市|