看一下这个怎么做?谢谢

qq_45341668 2020-05-17 10:00:06
给定下列代码有编译错误,请找出。
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对象时使用外部类的一个引用。
最后,使用匿名内部类改写该程序实现相同功能。
要求:提交程序代码和运行结果截图。
...全文
271 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
徐寿春 2020-05-29
  • 打赏
  • 举报
回复
static
storm_huang 2020-05-27
  • 打赏
  • 举报
回复 1
main是静态方法不能直接在里面创建内部类,所以你把内部类增加static修饰后可以编译和运行。 2个方式解决, 1、创建一个public方法,在这个方面实现逻辑,然后再main方面new一个Pockes对象调用。 2、创建对象修改为:Sorter s = new Pockets().new Sorter();
捏造的信仰 2020-05-17
  • 打赏
  • 举报
回复

请先学会贴代码。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧