乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Java教程:淺談Java中的內(nèi)部類

       好程序員IT 2019-07-10

      最近在講Java中的內(nèi)部類,感覺內(nèi)部類實(shí)際上對(duì)于初學(xué)者用得不多,那么內(nèi)部類簡單的說,其實(shí)就是在一個(gè)類的內(nèi)部定義的類。

      按照定義的情況分為:成員內(nèi)部類,局部內(nèi)部類,靜態(tài)內(nèi)部類,匿名內(nèi)部類。

      成員內(nèi)部類,就是定義一個(gè)當(dāng)作類的成員變量的類。

      局部內(nèi)部類,就是在類里面定義一個(gè)當(dāng)作局部變量的類,通常是在方法或代碼塊中使用。

      靜態(tài)內(nèi)部類,就是在類中定義一個(gè)靜態(tài)變量,而該靜態(tài)變量是一個(gè)類。

      匿名內(nèi)部類,通常是在創(chuàng)建一個(gè)接口對(duì)象,該對(duì)象是在創(chuàng)建對(duì)象的同時(shí)實(shí)現(xiàn)接口,而該接口的實(shí)現(xiàn)只是在此處使用一次,所以不需要定義名字,稱為匿名內(nèi)部類。

      請(qǐng)看如下代碼:

      public interface MyInter{

      public void method();

      }

      public class Outter {

      // public static int i; // 普通靜態(tài)變量

      // 靜態(tài)內(nèi)部類

      public static class Inner3{

      }

      // public String name; // 普通成員變量

      // 成員內(nèi)部類

      public class Inner1{

      }

      public void test() {

      // String n; // 普通局部變量

      // 局部內(nèi)部類

      class Inner2{

      }

      // 匿名內(nèi)部類,在運(yùn)行時(shí)會(huì)生成一個(gè)臨時(shí)的名字,類似:Outter$1.java

      MyInter in = new MyInter() {

      @Override

      public void method() {

      }

      };

      }

      }

      上面的代碼展示了4種不同的內(nèi)部類的情形。

      接下來看看這4種情形的具體用法。

      靜態(tài)內(nèi)部類:

      public class Outter {

      public int o1;

      public static int os1;

      public void om1() {

      System.out.println(Inner3.ns3);

      System.out.println(new Inner3().n3);

      System.out.println("om1");

      }

      public static void oms1() {

      System.out.println("oms1");

      }

      // public static int i;

      // 靜態(tài)內(nèi)部類

      public static class Inner3{

      // 在靜態(tài)內(nèi)部類中可以定義基本的成員和方法,以及靜態(tài)成員和方法

      public int n3;

      public static int ns3;

      public void m3() {

      System.out.println("m3");

      }

      public static void ms3() {

      System.out.println(os1);

      oms1();

      System.out.println("ms3");

      }

      }

      }

      靜態(tài)內(nèi)部類的使用:

      public static void main(String[] args) {

        Outter.Inner3 i3 = new Outter.Inner3();

        i3.n3 = 3;

        Outter.Inner3.ns3 = 4;

        Outter.Inner3.ms3();

        i3.m3();

      }

      可以看到靜態(tài)內(nèi)部類和靜態(tài)變量使用方式差不多,直接使用類名即可。

      成員內(nèi)部類:

      //成員內(nèi)部類

      public class Inner1{

      public int n1;

      public int o1;

      public void m1(int o1) {

       o1 = 1; // 局部變量

       this.o1 = 2; // 當(dāng)前屬性

       Outter.this.o1 = 4; // 外部屬性

       om1();

       System.out.println("m1");

      }

      }

      成員內(nèi)部類的使用:

      public static void main(String[] args) {

      // 調(diào)用

      Outter.Inner1 i1 = new Outter().new Inner1();

      i1.n1 = 3;

      i1.m1(3);

      }

      由于是成員,所以需要先創(chuàng)建對(duì)象才能使用。

      局部內(nèi)部類和匿名內(nèi)部類:相當(dāng)于局部變量,只能在方法里面調(diào)用和創(chuàng)建對(duì)象等,可以調(diào)用外部的變量和方法,外部不能調(diào)用它。請(qǐng)看如下方法:

      public void test() {

      // String n;

      // 局部內(nèi)部類

      class Inner2{

      public void m2() {

      o1 = 3;

      }

      }

      Inner2 i2 = new Inner2();

      i2.m2();

      // 匿名內(nèi)部類,在運(yùn)行時(shí)會(huì)生成一個(gè)臨時(shí)的名字,類似:Outter$1.java

      MyInter in = new MyInter() {

      @Override

      public void method() {

      o1 = 3;

      }

      };

      in.method();

      }

      至此,內(nèi)部類簡單的使用基本就到這了。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多