首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

菜鸟初学者有关问题-回答详细给满分.

2012-01-29 
初学者菜鸟问题-回答详细给满分..菜鸟问题.这个程序就是输入10个数放到数组中.然后输出它的最大最小数..我

初学者菜鸟问题-回答详细给满分..
菜鸟问题.这个程序就是输入10个数放到数组中.然后输出它的最大最小数..我是想调用java.util.Arrays里面的sort方法
把数组升序排一下.然后在输入.然而在调用sort时出现了以下几种问题.为什么这样写就不对了.我不明白.请详解.详细者给满分.不是分的问题.就是要绝对详解.不够我另开贴加....
=================================================================================================
方法1:

Java code
/** * @(#)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 a=new Arrays(); a.sort(sum); 这个去调用sort会有错.我也导入他的包了..
=======================================================================================
第2个:
Java code
/** * @(#)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);                 }  } 


===========================================================================================
以上是为什么我用extends Arrays..去继承..为什么还是有错....
============================================================================================
第3个:
Java code
/** * @(#)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);                 }  }

============================================================================
为什么直接用java.util.Arrays.sort(sum);就是对的.请详解..谢谢
==========================================================================


 

[解决办法]
第一个问题
Arrays 中的方法sort是静态的直接可以调用,不用创建任何对象
例如:
Java code
Arrays.sort(sum);
[解决办法]
如果你看了Arrays的源码,你会发现private Arrays();,也就是说它的构造方法是私有的,是对外不可见的,所以说你想New Arrays()
来创建该类的实例是不允许的,另外,它内部的所有方法都是static的,这样的话,你要调用它的方法,就只能通过Arrays.***这样的方式来调用了.
[解决办法]
第一:
Arrays a=new Arrays();//这个不能实例化,没有构造方法,它都是静态方法,没必要实例化
a.sort(sum); 
改为

Arrays .sort(sum); 

第二:因为Arrays类没有构造方法,因为你继承了它,所以你的构造方法里面要调用父类的构造方法,但是Arrays没有构造方法,所以出错!

第三:

因为以上的原因,你只能采取第三种了!因为它是无构造方法的,里面全是静态方法,sun就是这么设计的,不让别人继承这个类,可以看做是final的!



[解决办法]
探讨
引用:
如果你看了Arrays的源码,你会发现private Arrays();,也就是说它的构造方法是私有的,是对外不可见的,所以说你想New Arrays()
来创建该类的实例是不允许的,另外,它内部的所有方法都是static的,这样的话,你要调用它的方法,就只能通过Arrays.***这样的方式来调用了.



那可以说.方法是static他的构造方法就是私有的吗?

热点排行