久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 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 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部