PSV經典遊戲《靈魂獻祭Delta》將於12月24日停服
阿新 • • 發佈:2021-11-27
是一種特殊的內部類,該類 沒有名字。
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()中不能用。
}
}
注: