有一道java基础问题,一直编译不成功,求人解答。

package深入类;//本例通过实现不同的数据进行排序输出的人物,说明如何实现方法的重载。importjava.awt.Graphics;importjava.appl... package 深入类;
//本例通过实现不同的数据进行排序输出的人物,说明如何实现方法的重载。
import java.awt.Graphics;
import java.applet.Applet;
public class Intsort {
class IntSort {

public String sort(int a, int b) {
// TODO Auto-generated method stub
return null;
}

public String sort(int a, int b, int c) {
// TODO Auto-generated method stub
return null;
}

public String sort(int[] arr) {
// TODO Auto-generated method stub
return null;
}

}
public String sort(int a, int b){
if (a>b) return a+" "+b;
else return b+""+a;
}
public String sort(int a, int b, int c){
int swap;
if (a<b) { swap=a; a=b; b=swap;}
if (a<c) { swap=a; a=c; c=swap;}
if (b<c) { swap=b; b=c; c=swap;}
return a+" "+b+" "+c;
}
public String sort(int arr[]){
String s=" ";
int swap;
for(int i=0; i<=arr.length; i++)
for(int j=0; j<=arr.length-1; j++)
if(arr[j]>arr[j+1])
{ swap=arr[j+1]; arr[j+1]=arr[j]; arr[j]=swap;}
for(int i=0; i<arr.length; i++)
s=s+arr[i]+" ";
return s;
}
public class Class2 extends Applet {
IntSort s = new IntSort();
public void paint(Graphics g){
int a=30, b=12, c=40;
int arr[]={34,8,13,38,94,2,4,39,57};
g.drawString("两个数的排血结果:"+s.sort(a,b),30,30);
g.drawString("三个数的排序结果:"+s.sort(a,b,c) ,30,60);
g.drawString("数组的排列结果:"+s.sort(arr), 30 , 90 );

}
}
展开
 我来答
紫薇参星
科技发烧友

2012-02-20 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3583万
展开全部
我看了你的程序,方法重载不需要建立内部类,直接实现方法重载就可以了。
下面是我给你改的程序,Intsort和Class2两个类,要在Intsort.java和Class2.java中分别编译,然后运行Class2类。
//Intsort.java文件
public class Intsort {
public String sort(int a, int b){
if (a>b) return a+" "+b;
else return b+""+a;
}
public String sort(int a, int b, int c){
int swap;
if (a<b) { swap=a; a=b; b=swap;}
if (a<c) { swap=a; a=c; c=swap;}
if (b<c) { swap=b; b=c; c=swap;}
return a+" "+b+" "+c;
}
public String sort(int arr[]){
String s=" ";
int swap;
for(int i=0; i<arr.length; i++)
for(int j=0; j<arr.length-1; j++)
if(arr[j]>arr[j+1])
{ swap=arr[j+1]; arr[j+1]=arr[j]; arr[j]=swap;}
for(int i=0; i<arr.length; i++)
s=s+arr[i]+" ";
return s;
}
}
//Class2.java文件
import java.applet.Applet;
import java.awt.Graphics;

public class Class2 extends Applet {
Intsort s = new Intsort();
public void paint(Graphics g){
int a=30, b=12, c=40;
int arr[]={34,8,13,38,94,2,4,39,57};
g.drawString("两个数的排序结果:"+s.sort(a,b),30,30);
g.drawString("三个数的排序结果:"+s.sort(a,b,c) ,30,60);
g.drawString("数组的排列结果:"+s.sort(arr), 30 , 90 );

}
}
追问
但是我感觉我的编程没什么错误的啊,为什么总是编译不成功。请指教~~
追答
一、你不应该在Intsort类里建立内部类IntSort,你如果要继承可以用抽象类。
二、你的两个for循环for(int i=0; i<=arr.length; i++)和for(int j=0; j<=arr.length-1; j++)造成了数组越界,应该改成
for(int i=0; i<arr.length; i++) 和 for(int j=0; j<arr.length-1; j++)
三、IntSort s = new IntSort();调用的是内部类,应该改成Intsort s = new Intsort();
gj495147916
2012-02-27 · TA获得超过214个赞
知道答主
回答量:126
采纳率:0%
帮助的人:79.7万
展开全部
public class Intsort {
class IntSort {
这类里面不能有重名啊 建议先看看java基础,到网上找视频 学学语法 然后在开发一些小程序 祝你成功
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七喜的爸爸
2012-02-20 · TA获得超过297个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:119万
展开全部
您好,可能是您重名的方法太多了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式