1. 程式人生 > 資訊 >可配近視、散光,樂申時防藍光眼鏡 48 元

可配近視、散光,樂申時防藍光眼鏡 48 元

java內部類

1.什麼是匿名內部類

是一種特殊的內部類,該類 沒有名字。

eg.

class Test01{
public static void main(String[] args){
// 呼叫MyMath中的mySum方法。
MyMath mm = new MyMath();
//第一種方法:
/*
Compute c = new ComputeImpl();
mm.mySum(c, 100, 200);
*/


//合併(這樣寫程式碼,表示這個類名是有的。類名是:ComputeImpl)
//mm.mySum(new ComputeImpl(), 100, 200);

//第二種方法:
// 使用匿名內部類,表示這個ComputeImpl這個類沒名字了。
// 這裡表面看上去好像是介面可以直接new了,實際上並不是介面可以new了。
// 後面的{} 代表了對介面的實現。
mm.mySum(new Compute(){
public int sum(int a, int b){
return a + b;
}
}, 200, 300);


}

}

// 負責計算的介面
interface Compute{
// 抽象方法
int sum(int a, int b);
}

// Compute介面的實現類
/*
class ComputeImpl implements Compute{
// 對方法的實現
public int sum(int a, int b){
return a + b;
}
}
*/

// 數學類
class MyMath{
// 數學求和方法
public void mySum(Compute c, int x, int y){
int retValue = c.sum(x, y);
System.out.println(x + "+" + y + "=" + retValue);
}
}

2.內部類

2.1什麼是內部類?

內部類:在類的內部又定義了一個新的類。被稱為內部類。

2.2內部類的分類:

  • 靜態內部類:類似於靜態變數

  • 例項內部類:類似於例項變數

  • 區域性內部類:類似於區域性變數

class Test01{
// 靜態變數
static String country;

// 該類在類的內部,所以稱為內部類
// 由於前面有static,所以稱為“靜態內部類”
static class Inner1{
}

// 例項變數
int age;

// 該類在類的內部,所以稱為內部類
// 沒有static叫做例項內部類。
class Inner2{
}

// 方法
public void doSome(){
// 區域性變數
int i = 100;

// 該類在類的內部,所以稱為內部類
// 區域性內部類。
class Inner3{
}
}

public void doOther(){
// doSome()方法中的區域性內部類Inner3,在doOther()中不能用。
}
}

注:匿名內部類屬於區域性內部類