首頁  >  文章  >  Java  >  java 內部類,匿名內部類

java 內部類,匿名內部類

高洛峰
高洛峰原創
2016-12-15 12:51:581578瀏覽

java 內部類別分為4種:

1)靜態內部類別:static修飾的類別叫做靜態類,把靜態類別放到一個類別的內部,就叫做靜態內部類別

特點:可以存取外界:靜態方法/靜態屬性,不能存取實例資源

案例:

import inner.Foo.Koo;//一定要把Koo靜態內部類別匯入

public class Demo9 {

public static void main(String[String] args) {

Koo koo = new Koo();

koo.add();

}

}

class Foo{

int a = 12;///實例

public static void show(){ System.out.println("靜態的方法");}

//靜態內部類別

static class Koo{

public void add(){

///out. .println(a); 靜態內部類別不能存取實例資源(變數)

System.out.println(aa);

show();//靜態內部類別可以存取外界的靜態屬性和方法

}

}

}

2)成員內部類別:在一個類別的內部,直接定義了一個不用static修飾的類別,當建立成員內部類別物件的時候,外部類別要先建立出來。

特點:成員內部類,可以訪問外界的屬性和方法

案例:

import inner.Foo1.Koo1;

public class Demo10 {

public static void main(String[] args) {

/ /Koo1 koo1 = new Koo1();要建立成員內部類,則必須先建立外部類別物件

Foo1 foo1 = new Foo1();

//記住(筆試會考)

Koo1 koo1 = foo1. new Koo1();

koo1.show();

}

}

class Foo1{

int a =12;

static int int 16; {

System.out.println(a+" , "+aa);

}

}

}

3)局部內部類:使用非常的少,特點在一個方法內定義一個類(企業開發中及其少用)

特徵:局部內部類,在引用外界的變量,該變量必須使用final修飾

案例:

public class Demo11 {

public static void main(String[] args) {

final int a = 12;

final int b = 13;

class Foo2{

int c = 16;

public int add(){

int c = 16;

public int add(){

int c = 16;

public int add(){

,則變數必須用final修飾

return a+b+c;

}

}

Foo2 foo2 = new Foo2();

System.out.println(foo2.addn);

}

4)匿名內部類別:對原來的類別的一個繼承

特徵:跟介面/抽象類別結合使用

eg  new 類別名稱/介面名稱{

重寫方法

eg  new 類別名稱/介面名稱{

重寫方法

案例:

public class Demo1 {


public static void main(String[] args) {

 Koo koo = new Koo(){

 Koo koo = new Koo(){ public

// 可以重寫

   return "產生了一個Koo的物件";

  }

// 在匿名內部類別裡面不可以建立新的方法 

//   public void show(){

(){

"liu");

//   }

 };

 System.out.println(koo);

//  koo.show();

}

}

}

更多java 內部類,匿名內部類相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn