【问题标题】:How to return an array to separate class?如何将数组返回到单独的类?
【发布时间】:2012-02-16 08:04:43
【问题描述】:

如果我在一个单独的类中写出一个很长的数组,例如

public Student [] getArray(){
    Student [] studentArray = new Student[3];
    studentArray[0] = new Student (”Mel”);
    studentArray[1] = new Student (”Jared”);
    studentArray[2] = new Student (”Mikey”);
    return studentArray;
}

return 语句会将所有名称返回给我实际要运行的其他类,还是只返回一个?

【问题讨论】:

    标签: java arrays return


    【解决方案1】:

    这里,return 语句将返回整个数组,这意味着调用者可以访问所有三个Student 对象。例如:

    Student[] arr = getArray();
    System.out.println(arr[0]); // Prints out Mel student
    System.out.println(arr[1]); // Prints out Jared student
    System.out.println(arr[2]); // Prints out Mikey student
    

    如果您只想返回一个Student,那么您的返回类型将是Student,您必须专门选择要返回哪个。在 Java 中,返回一个数组总是返回整个数组,你不需要说你正在返回所有的内容。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      当然是所有的名字。它返回您的 array,其中包含您创建的所有学生。
      我猜你是编程新手。所以请阅读this 了解什么是数组以及如何使用它们。

      【讨论】:

        【解决方案3】:

        此声明

        Student[] studentArray = new Student[3];
        

        创建一个新数组,能够保存三个对Student实例的引用,并将引用分配给该数组的本地变量 studentArray

        return studentArray;
        

        将对该数组的引用返回给方法的调用者。他可以使用这个数组引用来获取Student对象的引用。

        他可以将它存储在另一个变量中,也可以直接使用它:

        Student[] callersArray = getArray();
        System.out.println(callersArray[0]);  // will print a Student "Mel"
        
        System.out.println(getArray()[0]);    // will print another(!) Student "Mel"
        

        【讨论】:

          【解决方案4】:

          返回数组的所有值。 你可以写得更短:

          public Student [] getArray(){
            return new Student[]{new Student (”Mel”), new Student (”Jared”), new Student (”Jared”)};
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-11-26
            • 2019-01-26
            • 2015-07-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-03-18
            相关资源
            最近更新 更多