給定下列代碼有編譯錯誤,請找出。
import java.util.*;
public class Pockets{
public static void main(String[] args){
String[] sa = {"east", "west", "south", "north"};
Sorter s = new Sorter();
for(String s2: sa) System.out.print(s2 + " ");
Arrays.sort(sa,s);
System.out.println();
for(String s2: sa) System.out.print(s2 + " ");
}
class Sorter implements Comparator<String>{
public int compare(String a, String b) {
return b.compareTo(a);
}
}
}
用兩種方法修改該程式使之正確編譯和運行:(1)將Sorter類定義為static內部類。(2)在創建Sorter物件時使用外部類的一個參考。
最后,使用匿名內部類改寫該程式實作相同功能。
要求:提交程式代碼和運行結果截圖。
uj5u.com熱心網友回復:

請先學會貼代碼。
uj5u.com熱心網友回復:
main是靜態方法不能直接在里面創建內部類,所以你把內部類增加static修飾后可以編譯和運行。2個方式解決,
1、創建一個public方法,在這個方面實作邏輯,然后再main方面new一個Pockes物件呼叫。
2、創建物件修改為:Sorter s = new Pockets().new Sorter();
uj5u.com熱心網友回復:
static轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/61773.html
標籤:Java SE
上一篇:librec
