Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示对象数组的详细信息_Java_Arrays_Methods - Fatal编程技术网

Java 显示对象数组的详细信息

Java 显示对象数组的详细信息,java,arrays,methods,Java,Arrays,Methods,您好,我对编程非常陌生,我正在尝试在eclipse中编写一个程序,它可以执行以下操作 创建一个具有4个属性的学生类:姓名、分数、课程和电话号码,这些属性由用户输入 有一个构造函数可以初始化传入参数的这四个属性,还有一个display()方法可以显示学生的详细信息 声明包含5个学生对象的空数组 使用这些变量在数组的当前位置创建学生对象 创建一个循环,调用数组中每个学生的display()方法 到目前为止,我已经让这个程序工作到这样一个地步:它创建了5个学生的数组,并读取用户的四个不同属性。但我

您好,我对编程非常陌生,我正在尝试在eclipse中编写一个程序,它可以执行以下操作

  • 创建一个具有4个属性的学生类:姓名、分数、课程和电话号码,这些属性由用户输入
  • 有一个构造函数可以初始化传入参数的这四个属性,还有一个display()方法可以显示学生的详细信息
  • 声明包含5个学生对象的空数组
  • 使用这些变量在数组的当前位置创建学生对象
  • 创建一个循环,调用数组中每个学生的display()方法
到目前为止,我已经让这个程序工作到这样一个地步:它创建了5个学生的数组,并读取用户的四个不同属性。但我不知道如何创建一个循环,为每个学生调用display方法。 这是到目前为止我的代码

import java.util.Scanner;

public class Student {


    private String name, course;
    private int mark, number;


    public Student(String nameIn, String courseIn, int markIn, int numberIn)
    {
        this.name = nameIn;
        this.course = courseIn;
        this.mark = markIn;
        this.number = numberIn;
    }


    public void display()
    {
        System.out.println("Name: " + this.name + " Course " + this.course + " mark: " + this.mark + " Number " + this.number);

    }

    public static void main (String[] args)
    {

        String[] Student = new String[5];


        Scanner scanner = new Scanner(System.in);




        for (int counter=0; counter< 5; counter++)
        {
            System.out.println("Enter name for student " + counter);
            Student[counter] = scanner.nextLine();
            System.out.println("Enter course for student " + counter);
            Student[counter] = scanner.nextLine();
            System.out.println("Enter mark for student " + counter);
            Student[counter] = scanner.nextLine();
            System.out.println("Enter number for student " + counter);
            Student[counter] = scanner.nextLine();

        }
        for (int counter=0; counter< 5; counter++)
        {
            System.out.println(Student[counter].display());

        }
  }
}
import java.util.Scanner;
公立班学生{
私有字符串名称,课程;
私有整数标记、数字;
公立学生(字符串名称、字符串课程名称、整数标记、整数编号)
{
this.name=nameIn;
this.course=courseIn;
this.mark=markIn;
this.number=numberIn;
}
公共空间显示()
{
System.out.println(“Name:+this.Name+“Course”+this.Course+“mark:+this.mark+“Number”+this.Number”);
}
公共静态void main(字符串[]args)
{
字符串[]学生=新字符串[5];
扫描仪=新的扫描仪(System.in);
用于(int计数器=0;计数器<5;计数器++)
{
System.out.println(“输入学生姓名”+计数器);
学生[计数器]=scanner.nextLine();
System.out.println(“为学生输入课程”+计数器);
学生[计数器]=scanner.nextLine();
System.out.println(“为学生输入分数”+计数器);
学生[计数器]=scanner.nextLine();
System.out.println(“为学生输入编号”+计数器);
学生[计数器]=scanner.nextLine();
}
用于(int计数器=0;计数器<5;计数器++)
{
System.out.println(学生[计数器].display());
}
}
}
PS如果我把这个问题贴错了,请提前道歉。这是我的第一篇文章,我在其他地方找不到类似的问题。
提前感谢。

您当前的代码既不能创建
学生数组,也不能正确填充它(每个循环都会覆盖以前的数据)

此外,您调用
display
的方式也不正确:

System.out.println(Student[counter].display());
首先,您希望在
学生
的实例上调用
显示
,而不是在类上调用。 其次,您不必调用
System.out.println
,因为
display
已经完成了这项工作(并且使用
void
参数调用
System.out.println
,因为
display
方法不返回任何结果,将毫无用处)

试着这样做:

Student[] students = new Student[5];

for (int counter=0; counter< 5; counter++)
        {

            System.out.println("Enter name for student " + counter);
            String name = scanner.nextLine();
            System.out.println("Enter course for student " + counter);
            String course = scanner.nextLine();
            System.out.println("Enter mark for student " + counter);
            String mark = scanner.nextLine();
            System.out.println("Enter number for student " + counter);
            String number = scanner.nextLine();

            Student student = new Student(name, course, mark, number);

            students[counter] = student;

        }

for (int counter=0; counter< students.length; counter++)
        {
           students[counter].display();

        }
Student[]Student=新生[5];
用于(int计数器=0;计数器<5;计数器++)
{
System.out.println(“输入学生姓名”+计数器);
字符串名称=scanner.nextLine();
System.out.println(“为学生输入课程”+计数器);
字符串course=scanner.nextLine();
System.out.println(“为学生输入分数”+计数器);
字符串标记=scanner.nextLine();
System.out.println(“为学生输入编号”+计数器);
字符串编号=scanner.nextLine();
学生=新学生(姓名、课程、分数、编号);
学生[柜台]=学生;
}
for(int counter=0;counter
虽然你是对的,但你也没有解决他的问题。他在问如何显示每个学生的相关信息。我们应该尽可能地回答他的问题,而不给他一个有效的解决方案,你不觉得吗?他因程序中的错误而遇到的任何问题都是他需要学习的,而不是我们代表他解决的。