內部類的介紹
定義在另外一個類中的類,叫內部類
成員內部類
1..new 創建成員內部類必須先創建外部類的實例,然后通過.new 創建內部類的對象
2..this 可以通過外部類的類名.this去訪問外部類的所有屬性和方法。
public class Test1 {  String name = "asnd";  public static void main(String[] args) {    Test1 test1 = new Test1();    Inner mInner = test1.new Inner();    mInner.print();  }  void show() {    System.out.println("show");  }  public class Inner {    String name = "123";    private void print(){      show();      System.out.println(name);//打印的是123      System.out.println(Test1.this.name);//打印的是asnd    }  }}匿名內部類
沒有名字的類,創建類的同時,也會創建一個對象。 
只需要用到一次的類,就可以使用匿名內部類
  File file = new File("D:/cc.txt") {      @Override      public boolean delete() {        System.out.println("是否刪除y/n");        Scanner input = new Scanner(System.in);        String str = input.next();        if (str.equals("y")) {          return super.delete();        }        System.out.println("刪除失敗");        return false;      }    };    file.delete();  }匿名對象
該對象只需要訪問一次.
new Thread() {      @Override      public void run() {        System.out.println("線程開始!");        try {          Thread.sleep(2000);          System.out.println("線程結束!");        } catch (Exception e) {          e.printStackTrace();        }        super.run();      }    }.start();靜態內部類
1.靜態內部類只能訪問外部類靜態的方法和變量,不能訪問非靜態。
2.靜態內部類可以不需要創建外部類的引用,而直接創建。
匿名內部類訪問局部變量
內部類訪問局部變量必須final,如果沒有加,jdk1.8默認加上去了
當所使用的變量是在變的時候可以用下面的方法,也可以把下面的i在開始的時候定為靜態的
for (int i = 0; i < 5; i++) {      final int finali = i;      new Thread() {        public void run() {          System.out.println(finali);        };      }.start();    }下面介紹一下內部類的實現技巧
public static void main(String[] args) {    Lam mLam = new Lam();    //第一種實現的方法    mLam.to(new Ligh() {      @Override      public void shin() {        System.out.println("on的第一種方法");      }    });    //第二種實現方法    class MyLam implements Ligh{      @Override      public void shin() {        System.out.println("第二種");      }}    mLam.to(new MyLam());  }}interface Ligh {  void shin();}class Lam {  public void to(Ligh ligh) {    ligh.shin();    System.out.println("on");  }}感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答