posts - 51, comments - 17, trackbacks - 0, articles - 9
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          java 內部類

          Posted on 2007-04-08 22:13 chenweicai 閱讀(126) 評論(0)  編輯  收藏


          1。類中定義內部類

          public class Outer {

           private int outer_i = 100;//內部類可以訪問外部類的變量
           
           void test(){
            Inner inner = new Inner();
            inner.display();
           }
           
           //當一個類中的程序代碼要用到另外一個類的實例對象,
           //而另外一個類的程序代碼又要訪問第一個類的成員時
           // 將另外一個類作成第一個類的內部類。
           class Inner{
            
            private int inner_i;
            //內部類的成員只有在內部類的范圍之內是可知的,
            //并不能被外部類使用
            
            void display(){
             System.out.println("display: outer_i = " + outer_i);
            }
           }
          }


           public static void main(String[] args) {

            Outer outer = new Outer();
            outer.test();
           }

          2.

          public class Outer {

           private int size = 1;
           
           public void print(){
            Inner inner = new Inner();
            inner.method(11);
           }
           
           public class Inner{
            private int size = 3;
            
            public void method(int size){
             size++;//method的形參
             this.size++;//Inner類中的成員變量
             Outer.this.size++;//Outer類中的成員變量
             
             System.out.println("method size is :" +size);
             System.out.println("Inner size is :" + this.size);
             System.out.println("Outer size is :" + Outer.this.size);
            }
           }
           
           public static void main(String[] args){
            Outer outer = new Outer();
            outer.print();
           }
          }

          3.內部類被外部引用

          public class Outer {

           private int size = 10;
           
           //內部類聲明為public 可從外部類之外被調用
           public class Inner{
            public void print(){
             System.out.println(++size);
            }
           }
          }

          public class test {


           public static void main(String[] args) {

            Outer outer = new Outer();
            Outer.Inner inner = outer.new Inner();
            inner.print();
           }
          }

          4.方法中定義內部類

          public class Outer {

           int outer_i = 100;
           String str = new String("Between");
           
           void test(){
            for(int i=0; i<5; i++){
             
             class Inner{
              void display(){
               System.out.println("display: outer_i = " + outer_i);
              }
             }
             
             Inner inner = new Inner();
             inner.display();
            }
           }
           
           //在方法中定義的內部類只能訪問方法中的final類型的局部變量
           //因為用final定義的局部變量相當于一個常量,她的生命周期超出了方法運行的生命周期
           public void amethod(final int iArgs){
            int it315;//此變量內部類不能訪問
            
            class Bicycle{
             public void sayhello(){
              System.out.println(str);
              System.out.println(iArgs);
             }
            }
            Bicycle bicycle = new Bicycle();
            bicycle.sayhello();
           }
          }


           public static void main(String[] args) {

            Outer outer = new Outer();
            outer.test();
            outer.amethod(18);
            
           }


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 上犹县| 保定市| 神木县| 张掖市| 手机| 南靖县| 治多县| 襄垣县| 辉县市| 罗山县| 枝江市| 大方县| 礼泉县| 仪陇县| 安塞县| 晋宁县| 怀化市| 湘潭市| 佳木斯市| 诸暨市| 宜兰县| 琼结县| 濉溪县| 阿巴嘎旗| 定州市| 巴中市| 大余县| 邻水| 镶黄旗| 工布江达县| 冕宁县| 娱乐| 平原县| 邛崃市| 安泽县| 古丈县| 江永县| 年辖:市辖区| 保德县| 常宁市| 南宁市|