日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > java中的內部類分析

java中的內部類分析 時間:2015-06-17      來源:未知

允許一個類的定義出現在另一個類中,將處于另一個類中的“寄生類”稱為“內部類”(inner class),也稱為“類屬類”

這樣的一組類在邏輯上是一個整體,內部類和外層封裝它的類之間存在邏輯上的從屬關系

內部類對其封裝類的內部成員有訪問權限

舉例1:

public class Outer1 { 
                  private int size; 
                  /* 定義一個內部類,名為 "Inner" */ 
                  public class Inner { 
                      public void doStuff() { 
                        // 內部類可以訪問外部類的私有屬性 
                        size++; 
                     } 
                 } 
                 public void testTheInner() { 
                    Inner i = new Inner(); 
                    i.doStuff(); 
                  } 
        }

實例化內部類的兩種方法:

---法一:

Outer.Inner in=new Outer().new Inner();

---法二:

Outer o=new Outer();

Outer.Inner I=o.new Inner();

如果內部類是static的,也可以用下面方法:

Outer.Inner in=new Outer.Inner();

舉例2:內部類中的變量訪問形式

class Out { 
                private int age = 12;
                class In { 
                        private int age = 13; 
                        public void print() { 
                                int age = 14; 
                                System.out.println("局部變量:" + age); 
                                System.out.println("內部類變量:" + this.age); 
                                System.out.println("外部類變量:" + Out.this.age); 
                        } 
                } 
        } public class Demo { 
                public static void main(String[] args) { 
                        Out.In in = new Out().new In(); 
                        in.print(); 
                } 
        }

運行結果:

局部變量:14

內部類變量:13

外部類變量:12

舉例3:靜態內部類

class Out { 
                private static int age = 12;
                 static class In {
                        public void print() {
                                System.out.println(age);
                        }
                }
        } public class Demo {
                public static void main(String[] args) {
                        Out.In in = new Out.In();
                        in.print();
                }
        }

可以看到,如果用static 將內部內靜態化,那么內部類就只能訪問外部類的靜態成員變量,具有局限性

其次,因為內部類被靜態化,因此Out.In可以當做一個整體看,可以直接new 出內部類的對象(通過類名訪問static,生不生成外部類對象都沒關系)

實例4:私有內部類

class Out { 
                private int age = 12; 
        
                private class In { 
                        public void print() { 
                                System.out.println(age); 
                        } 
                } 
                public void outPrint() { 
                        new In().print(); 
                } 
        }
        public class Demo { 
                public static void main(String[] args) { 
                        //此方法無效 
                        /* 
                        Out.In in = new Out().new In(); 
                        in.print(); 
                        */
                        Out out = new Out(); 
                        out.outPrint(); 
                } 
        }

如果一個內部類只希望被外部類中的方法操作,那么可以使用private聲明內部類

上面的代碼中,我們必須在Out類里面生成In類的對象進行操作,而無法再使用Out.In in = new Out().new In() 生成內部類的對象

也就是說,此時的內部類只有外部類可控制。

上一篇:nfs服務與tftp服務的配置

下一篇:java中的匿名內部類總結

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 武汉日夜| 金时厚| 那根所有权| 日本电影致命诱惑| 香港九龙图库精选资料| 校园风暴| 森林运动会作文三年级300字| 夫妻一场电视剧全集在线观看| 在线播放国内自拍情侣酒店| 高慧君| 烽火硝烟里的青春演员表| 牵着妈妈的手广场舞| 天猫店铺运营| 画江湖之不良人7季什么时候上映| 小敏家| 风间由美的电影| 滑胎最凶的食物孕早期| 母亲电影韩国完整版免费观看| 暗夜与黎明电视连续剧| 一闪一闪亮晶晶钢琴谱简谱| a级在线| 惊魂今晚夜| 西藏卫视节目单| busty buffy| 无锡电视台| 陕09j01图集| 日记100字简单| 性高中| 欢乐的牧童钢琴谱| 188549.神秘的电影| 吴彦祖《偷窥无罪》| 王艺潼| 妻子出轨| 蓝燕3d电影《极乐宝鉴》在线观看| 陈学冬颖儿主演电视剧《解密》| 流行性感冒ppt课件| 打开免费观看视频在线观看高清| 康斯但丁| 泰诺对乙酰氨基酚缓释片说明书| 许慧强| 大场面|