黑马程序员技术交流社区

标题: 急!求解啊!关于重载、数组初始化等问题 [打印本页]

作者: 莫若吻    时间: 2014-4-23 22:10
标题: 急!求解啊!关于重载、数组初始化等问题
本帖最后由 莫若吻 于 2014-4-25 10:29 编辑

练习题:定义一个类Initial,类内部重载initArr()方法,分别实现对整数数组,双精度型数组,字符串数组的初始化功能,数组作为方法的参数,方法体内提示用户为数组元素输入数据,然后显示所有元素。在main方法中创建三种类型数组,创建Initial类的对象,分别调用initArr()方法进行初始化。

提示:用户自定义输入元素,用Scanner reader=new Scanner(System.in);  将用户输入的元素存入一个整型变量用 int x=reader.nextInt();
其他知识点涉及到的就是毕老师教我们的重载和数组等等知识了。(虽然本人知道用哪些知识点,却思考了一晚上都未完全按要求做出来,总是差那么一点。希望大家帮帮忙!本人表示感谢!)



下面这是在大家的帮助下,我做出的答案:(依旧有不足之处,仅供参考吧!)

import java.util.Arrays;
import java.util.Scanner;
class Initial{
   private Scanner input=new Scanner(System.in);
   void initArr(int[] arr){
       System.out.println("请为整型数组设置元素个数");
       int n=input.nextInt();
       arr=new int[n];
       System.out.println("请为整型数组输入"+n+"个元素");
       for(int i=0;i<n;i++)
       {
            arr
=input.nextInt();
       }
      System.out.println(Arrays.toString(arr));//打印数组
   }
   void initArr(double[] arr){
     System.out.println("\n"+"请为双精度数组设置元素个数");
     int n=input.nextInt();
     arr=new double[n];
     System.out.println("请为双精度数组输入"+n+"个元素");
     for(int i=0;i<n;i++)
     {
           arr
=input.nextDouble();
      }
         System.out.println(Arrays.toString(arr));//打印数组
   }
   void initArr(String[] arr){
        System.out.println("\n"+"请为字符串数组设置元素个数");
        int n=input.nextInt();
        arr=new String[n];
        System.out.println("请为字符串数组输入"+n+"个元素");
        for(int i=0;i<n;i++)
       {
              arr
=input.next();
        }
       System.out.println(Arrays.toString(arr));//打印数组
    }
}
class Exercise{
   public static void main(String[] args){
         Initial zz=new Initial();
        int[] arr=null;
        double[] array=null;
        String[] arrayy=null;
        zz.initArr(arr);
        zz.initArr(array);
        zz.initArr(arrayy);
   }
}



作者: Tking    时间: 2014-4-24 02:27
本帖最后由 Tking 于 2014-4-24 02:32 编辑
  1. <div class="blockcode"><blockquote>import java.util.Arrays;
  2. import java.util.Scanner;



  3. public class Test15 {
  4.         public static void main(String[]args)
  5.         {
  6.                 Initial init=new Initial();
  7.                 int[] tempint=new int[3];
  8.                 String[] tempstring=new String[4];
  9.                 double[] tempdouble=new double[5];
  10.                 init.initArr(tempint);
  11.                 init.initArr(tempstring);
  12.                 init.initArr(tempdouble);
  13.         }
  14. }
  15. class Initial
  16. {
  17.         private Scanner input=null;
  18.         public Initial() {
  19.                 input=new Scanner(System.in);
  20.         }
  21.         void initArr(int[] arr)
  22.         {
  23.                 System.out.println("int input.....");
  24.                 for(int i=0;i<arr.length;i++)
  25.                 {
  26.                         String temp=get();
  27.                         if(!temp.matches("\\d+"))
  28.                                 return ;
  29.                         arr[i]=Integer.valueOf(temp);
  30.                 }
  31.                 System.out.println(Arrays.toString(arr));
  32.         }
  33.         void initArr(String[] arr)
  34.         {
  35.                 System.out.println("String input.....");
  36.                 for(int i=0;i<arr.length;i++)
  37.                 {
  38.                         arr[i]=get();
  39.                 }
  40.                 System.out.println(Arrays.toString(arr));
  41.         }
  42.         void initArr(double[] arr)
  43.         {
  44.                 System.out.println("double input.....");
  45.                 for(int i=0;i<arr.length;i++)
  46.                 {
  47.                         String temp=get();
  48.                         if(temp.matches("\\d+.\\d+"))
  49.                                 arr[i]=Double.valueOf(temp);
  50.                 }
  51.                 System.out.println(Arrays.toString(arr));
  52.         }
  53.        
  54.         private String get()
  55.         {
  56.                 return input.next();
  57.         }
  58. }
复制代码


你看这个可不可以,试试吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2