初学者菜鸟问题-回答详细给满分..
菜鸟问题.这个程序就是输入10个数放到数组中.然后输出它的最大最小数..我是想调用java.util.Arrays里面的sort方法
把数组升序排一下.然后在输入.然而在调用sort时出现了以下几种问题.为什么这样写就不对了.我不明白.请详解.详细者给满分.不是分的问题.就是要绝对详解.不够我另开贴加....
=================================================================================================
方法1:
/** * @(#)lesson4_2.java * * * @author * @version 1.00 2008/4/29 */import javax.swing.JOptionPane;import java.util.*; class ssssss // extends Arrays { public static void main(String args[]){ String number1; String number2; String number3; String number4; String number5; String number6; String number7; String number8; String number9; String number10; int num1,num2,num3,num4,num5,num6,num7,num8,num9,num10; int max,min; number1=JOptionPane.showInputDialog("aaa请输入第一个整数:"); number2=JOptionPane.showInputDialog("请ss输入第二个整数:"); number3=JOptionPane.showInputDialog("请输入第三个整数:"); number4=JOptionPane.showInputDialog("请输入第四个整数:"); number5=JOptionPane.showInputDialog("请输入第五个整数:"); number6=JOptionPane.showInputDialog("请输入第六个整数:"); number7=JOptionPane.showInputDialog("请输入第七个整数:"); number8=JOptionPane.showInputDialog("请输入第八个整数:"); number9=JOptionPane.showInputDialog("请输入第九个整数:"); number10=JOptionPane.showInputDialog("请输入第十个整数:"); num1=Integer.parseInt(number1); num2=Integer.parseInt(number2); num3=Integer.parseInt(number3); num4=Integer.parseInt(number4); num5=Integer.parseInt(number5); num6=Integer.parseInt(number6); num7=Integer.parseInt(number7); num8=Integer.parseInt(number8); num9=Integer.parseInt(number9); num10=Integer.parseInt(number10); int sum[]={num1,num2,num3,num4,num5,num6,num7,num8,num9,num10}; //java.util.Arrays.sort(sum); //sort(sum); Arrays a=new Arrays(); a.sort(sum); JOptionPane.showMessageDialog(null,"最大数是和最小数"+sum[9]+"----"+sum[0],"结果",JOptionPane.PLAIN_MESSAGE); System.exit(0); } }/** * @(#)lesson4_2.java * * * @author * @version 1.00 2008/4/29 */import javax.swing.JOptionPane;import java.util.*; class ssssss extends Arrays { public static void main(String args[]){ String number1; String number2; String number3; String number4; String number5; String number6; String number7; String number8; String number9; String number10; int num1,num2,num3,num4,num5,num6,num7,num8,num9,num10; int max,min; number1=JOptionPane.showInputDialog("aaa请输入第一个整数:"); number2=JOptionPane.showInputDialog("请ss输入第二个整数:"); number3=JOptionPane.showInputDialog("请输入第三个整数:"); number4=JOptionPane.showInputDialog("请输入第四个整数:"); number5=JOptionPane.showInputDialog("请输入第五个整数:"); number6=JOptionPane.showInputDialog("请输入第六个整数:"); number7=JOptionPane.showInputDialog("请输入第七个整数:"); number8=JOptionPane.showInputDialog("请输入第八个整数:"); number9=JOptionPane.showInputDialog("请输入第九个整数:"); number10=JOptionPane.showInputDialog("请输入第十个整数:"); num1=Integer.parseInt(number1); num2=Integer.parseInt(number2); num3=Integer.parseInt(number3); num4=Integer.parseInt(number4); num5=Integer.parseInt(number5); num6=Integer.parseInt(number6); num7=Integer.parseInt(number7); num8=Integer.parseInt(number8); num9=Integer.parseInt(number9); num10=Integer.parseInt(number10); int sum[]={num1,num2,num3,num4,num5,num6,num7,num8,num9,num10}; //java.util.Arrays.sort(sum); sort(sum); //Arrays a=new Arrays(); // a.sort(sum); JOptionPane.showMessageDialog(null,"最大数是和最小数"+sum[9]+"----"+sum[0],"结果",JOptionPane.PLAIN_MESSAGE); System.exit(0); } }
/** * @(#)lesson4_2.java * * * @author * @version 1.00 2008/4/29 */import javax.swing.JOptionPane;import java.util.*; class ssssss // extends Arrays { public static void main(String args[]){ String number1; String number2; String number3; String number4; String number5; String number6; String number7; String number8; String number9; String number10; int num1,num2,num3,num4,num5,num6,num7,num8,num9,num10; int max,min; number1=JOptionPane.showInputDialog("aaa请输入第一个整数:"); number2=JOptionPane.showInputDialog("请ss输入第二个整数:"); number3=JOptionPane.showInputDialog("请输入第三个整数:"); number4=JOptionPane.showInputDialog("请输入第四个整数:"); number5=JOptionPane.showInputDialog("请输入第五个整数:"); number6=JOptionPane.showInputDialog("请输入第六个整数:"); number7=JOptionPane.showInputDialog("请输入第七个整数:"); number8=JOptionPane.showInputDialog("请输入第八个整数:"); number9=JOptionPane.showInputDialog("请输入第九个整数:"); number10=JOptionPane.showInputDialog("请输入第十个整数:"); num1=Integer.parseInt(number1); num2=Integer.parseInt(number2); num3=Integer.parseInt(number3); num4=Integer.parseInt(number4); num5=Integer.parseInt(number5); num6=Integer.parseInt(number6); num7=Integer.parseInt(number7); num8=Integer.parseInt(number8); num9=Integer.parseInt(number9); num10=Integer.parseInt(number10); int sum[]={num1,num2,num3,num4,num5,num6,num7,num8,num9,num10}; java.util.Arrays.sort(sum); //sort(sum); //Arrays a=new Arrays(); // a.sort(sum); JOptionPane.showMessageDialog(null,"最大数是和最小数"+sum[9]+"----"+sum[0],"结果",JOptionPane.PLAIN_MESSAGE); System.exit(0); } }Arrays.sort(sum);
[解决办法]
如果你看了Arrays的源码,你会发现private Arrays();,也就是说它的构造方法是私有的,是对外不可见的,所以说你想New Arrays()
来创建该类的实例是不允许的,另外,它内部的所有方法都是static的,这样的话,你要调用它的方法,就只能通过Arrays.***这样的方式来调用了.
[解决办法]
第一:
Arrays a=new Arrays();//这个不能实例化,没有构造方法,它都是静态方法,没必要实例化
a.sort(sum);
改为
Arrays .sort(sum);
第二:因为Arrays类没有构造方法,因为你继承了它,所以你的构造方法里面要调用父类的构造方法,但是Arrays没有构造方法,所以出错!
第三:
因为以上的原因,你只能采取第三种了!因为它是无构造方法的,里面全是静态方法,sun就是这么设计的,不让别人继承这个类,可以看做是final的!
[解决办法]