色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 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號

回到頂部

主站蜘蛛池模板: 欧美性XXXXX极品娇小 | 四虎在线免费观看视频 | 强行扒开双腿疯狂猛躁3p视频 | 欧美丰满熟妇BBBBBB | 亚洲av无码久久寂寞少妇 | 亚洲AV一本岛在线播放 | 成人精品一区日本无码网 | 免费黄色网址在线观看 | 无码国产精品人妻一区二区 | 国产精品久久久久久久久久久久人四虎 | 亚洲中文字幕av一区二区三区 | 中文字幕国内精品 | 亚洲av成人片在线观看 | 在线免费观看黄色av | 国产熟女一区二区三区四区五区 | 超碰人人超碰人人 | 国产v综合v亚洲欧美久久 | 97久久超碰精品视觉盛宴 | 国产欧美另类久久精品蜜芽 | 日本真人添下面视频免费 | 欧乱色国产精品兔费视频 | 欧美黑人喷潮水xxxx | 日本欧美久久久久免费播放网 | 一本久久伊人热热精品中文字幕 | 午夜福利精品导航凹凸 | 免费A片看黄网站WWW | 久久国产自偷自偷免费一区调 | 午夜三级理论在线观看 | 欧美日韩国产激情一区 | 无码专区中文字幕无码 | 黄色免费观看网址 | 亚洲精品第一国产综合精品99 | 日韩人妻无码一区二区三区 | 无码人妻H动漫中文字幕 | 亚洲高清免费观看在线视频 | 国产又色又爽又黄的A片 | 日韩成全视频观看免费观看高清 | 中文字幕一区二区三区免费视频 | 国产在线精品无码AV不卡顿 | 国产啪精品视频网站 | 午夜三级理论在线观看 |