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();
           }
           
           //當一個類中的程序代碼要用到另外一個類的實例對象,
           //而另外一個類的程序代碼又要訪問第一個類的成員時
           // 將另外一個類作成第一個類的內(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類型的局部變量
           //因為用final定義的局部變量相當于一個常量,她的生命周期超出了方法運行的生命周期
           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)站導航:
           
          主站蜘蛛池模板: 永宁县| 镇远县| 耿马| 高邮市| 昆明市| 九台市| 苍山县| 红安县| 潞西市| 甘泉县| 两当县| 台湾省| 山丹县| 晋宁县| 桂林市| 湖南省| 株洲县| 周宁县| 木兰县| 朝阳市| 璧山县| 资源县| 沁源县| 平武县| 陵川县| 潮州市| 大港区| 松潘县| 牡丹江市| 青海省| 嵊泗县| 鹤壁市| 修文县| 贞丰县| 洱源县| 泸水县| 饶平县| 湘潭县| 卢氏县| 松溪县| 伊春市|