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

          java 內(nèi)部類

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


          1。類中定義內(nèi)部類

          public class Outer {

           private int outer_i = 100;//內(nèi)部類可以訪問外部類的變量
           
           void test(){
            Inner inner = new Inner();
            inner.display();
           }
           
           //當(dāng)一個(gè)類中的程序代碼要用到另外一個(gè)類的實(shí)例對象,
           //而另外一個(gè)類的程序代碼又要訪問第一個(gè)類的成員時(shí)
           // 將另外一個(gè)類作成第一個(gè)類的內(nèi)部類。
           class Inner{
            
            private int inner_i;
            //內(nèi)部類的成員只有在內(nèi)部類的范圍之內(nè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.內(nèi)部類被外部引用

          public class Outer {

           private int size = 10;
           
           //內(nèi)部類聲明為public 可從外部類之外被調(diào)用
           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.方法中定義內(nèi)部類

          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();
            }
           }
           
           //在方法中定義的內(nèi)部類只能訪問方法中的final類型的局部變量
           //因?yàn)橛胒inal定義的局部變量相當(dāng)于一個(gè)常量,她的生命周期超出了方法運(yùn)行的生命周期
           public void amethod(final int iArgs){
            int it315;//此變量內(nèi)部類不能訪問
            
            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);
            
           }


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 沙田区| 饶平县| 商丘市| 乐业县| 伊宁市| 卓资县| 辉县市| 永城市| 云安县| 德州市| 尚志市| 天祝| 伊吾县| 中西区| 富顺县| 光泽县| 额济纳旗| 教育| 万盛区| 东山县| 班玛县| 桓台县| 兰州市| 河曲县| 大英县| 二手房| 阿鲁科尔沁旗| 临汾市| 原阳县| 蓝山县| 甘孜县| 岑巩县| 镇安县| 米脂县| 南部县| 安陆市| 安福县| 鄂托克旗| 山东| 旺苍县| 江源县|