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中文網!