мне нужно просматривать следующую информацию:Как использовать недействительные методы
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()
Для того, чтобы заполнить массив, задавая пользователю ввести имя и идентификационный номер для каждого объекта хранится в массиве
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 действительно должно быть целочисленной переменной «array», начиная с ввода. При этом вы повторно используете массив имен переменных для вашего статического массива int и Student []. В общем, я бы рекомендовал никогда не использовать слово «массив» в качестве имени переменной. Что-то вроде «студенты» или «студент» будет лучше. – Shark
Создайте метод 'ToString' в классе' Student', который возвращает строку с именем и идентификатором. Затем вы можете перебирать массив 'Student []' и просто вызывать 'toString' для каждого объекта. У вас есть много принципиальных проблем с вашим кодом, вам нужно обратиться к своему профессору/TA/teacher ('createArray' запрашивает ввод, но затем отбрасывает его, дублирует имена переменных ... и т. Д. И т. Д.). Ваш объект «Студент» выглядит нормально, «StudentTest» - это немного катастрофа. – tnw