【发布时间】:2014-11-17 21:13:16
【问题描述】:
我需要显示以下信息
Enter size of array: 3
Enter student name: jane doe
Enter student id number: 14234567
Enter student name: john doe
Enter student id number: 12345678
Enter student name: peter griffin
Enter student id number: 14238251
Array Contents
jane doe 14234567
john doe 12345678
peter griffin
14238251
我必须使用以下方法
询问用户他们希望数组的大小,然后创建一个数组类型 指定大小的学生。
public static Student[] createArray()
通过要求用户输入每个对象的名称和 ID 号来填充数组 存储在数组中
public static void populateArray(Student[] array)
显示数组的内容
public static void displayArray(Student[] array)
这是我目前所拥有的
class Student {
//private instances
private String name = "unassigned";
private long idNumber = 0;
//Default constructor
public Student() {
name = "Not Given";
idNumber = 0;
}
//Constructs a new Student with passed name and age parameters.
public Student(String studentName, long studentIdNumber) {
name = studentName;
idNumber = studentIdNumber;
}
//Returns the name of this student.
public String getName( ) {
return name;
}
// Returns the idNumber of this person.
public long getIdNumber( ) {
return idNumber;
}
//Sets the name of this student.
public void setName(String studentName ) {
name = studentName;
}
//Sets the idNumber of this student.
public void setIdNumber(long studentIdNumber ) {
idNumber = studentIdNumber;
}
} // end class
和
import java.util.Scanner;
public class StudentTest {
static int array;
//create method createArray
public static Student[] createArray() {
Scanner int_input = new Scanner(System.in);
//user enters size of array
System.out.print("Enter Size of Array: ");
array = int_input.nextInt();
//create array
Student[] array = new Student[0];
return array;//return array
}//end method
//create method populateArray
public static void populateArray(Student[] array) {
try (Scanner string_input = new Scanner(System.in);
Scanner long_input = new Scanner(System.in);)
{
for (int i = 0; i < 3; i++) {
Student arrays = new Student();
//set name
System.out.println("Enter Student Name: ");
arrays.setName(string_input.nextLine());
//set ID number
System.out.println("Enter Student ID Number: ");
arrays.setIdNumber(long_input.nextLong());
System.out.println();
}//end for loop
}//end try loop
}//end method
//create method display Array
public static void displayArray(Student[] array){
System.out.println("Array Contents");
System.out.println();
}//end method
public static void main(String [] args){
//display createArray method
System.out.println(createArray());
//display populateArray method
System.out.println();
//display array contents
System.out.println();
}//end main method
}//end class
我的问题是如何获得 populateArray 方法以允许我将数据输入其中然后显示它?并让 displayArray 方法显示?我尝试了很多不同的东西,但我无法弄清楚
【问题讨论】:
-
这里可能的错字:Student[] array = new Student[0];我认为 0 实际上应该是来自输入的整数变量“数组”。话虽如此,您将变量名称数组重新用于静态 int 和 Student[] 数组。一般来说,我建议永远不要使用“数组”这个词作为变量名。像“students”或“student”这样的词更合适。
-
在您的
Student类中创建一个ToString方法,该方法返回一个带有名称和 ID 的字符串。然后,您可以遍历Student[]数组并在每个对象上调用toString。您的代码有很多非常基本的问题,您需要去找您的教授/助教/老师(createArray要求输入但随后将其丢弃,重复变量名......等等)。您的Student对象实际上看起来还不错,但StudentTest有点灾难。