菜鸟问题.这个程序就是输入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);
    
     }  
}
=====================================================
以上是.为什么我用    Arrays a=new Arrays(); a.sort(sum); 这个去调用sort会有错.我也导入他的包了..
=======================================================================================
第2个:
/**
 * @(#)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个:
/**
 * @(#)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);就是对的.请详解..谢谢
==========================================================================
    

解决方案 »

  1.   

    第一个问题
    Arrays 中的方法sort是静态的直接可以调用,不用创建任何对象
    例如:Arrays.sort(sum);
      

  2.   

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

  3.   

    第一:
    Arrays a=new Arrays();//这个不能实例化,没有构造方法,它都是静态方法,没必要实例化
        a.sort(sum); 
    改为Arrays .sort(sum); 第二:因为Arrays类没有构造方法,因为你继承了它,所以你的构造方法里面要调用父类的构造方法,但是Arrays没有构造方法,所以出错!第三:因为以上的原因,你只能采取第三种了!因为它是无构造方法的,里面全是静态方法,sun就是这么设计的,不让别人继承这个类,可以看做是final的!
      

  4.   

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

  5.   


    没有这种说法的。Arrays 整个属于工具类,它里面的都是工具方法,没有必要让
    它产生对象了,所以说设计者就把空构造给私有了。同样的设计在 java.lang.System 也是这样子的。另外,便用 Integer.parseInt 这个方法作为工具是静态的,
    但是 Integer 也有两个构造可以用于产生对象的。