我是java的新手,我不确定我需要使用什么来实现我的目标...或者我不确定如何在谷歌或stackoverflow上搜索它...
假设我有一个学生类,它有一个方法来获取/设置他们的名字,以及他们的专业。我还有另一个专业,我可以创建一个实例,并在ArrayList中添加属于这个专业的学生。
我有一台扫描仪,学生可以输入他们的详细信息......
我会在我的学生课上用这样的主题写一下这个:
package exp;
import java.util.Scanner;
public class Student {
private String name, major;
private int id;
public Student(){
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setMajor(String major){
this.major = major;
}
public String getMajor(){
return major;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Student student1 = new Student();
System.out.println("Enter name: ");
student1.setName(scan.next());
System.out.println("Enter major: ");
student1.setMajor(scan.next());
Major major1 = new Major();
major1.addStudents(student1);
System.out.println("List of students in major1: ");
major1.getStudents();
}
}
在我的专业班:
package exp;
import java.util.ArrayList;
public class Major {
private ArrayList<Student> students;
public Major(){
students = new ArrayList<Student>();
}
public void addStudents(Student insertStudent){
students.add(insertStudent);
}
public void getStudents(){
for(Student student: students){
System.out.println(student.getName());
}
}
}
我知道这很好用......学生填写他们的详细信息......但如果有1000名学生或未知数量的学生怎么办?我们如何创建新实例而不是在主“Student student2 = new Student();”中手动创建等等......以及我们如何将学生的实例添加到他们所属的Major的实例中?
非常感谢!
答案 0 :(得分:3)
你可以简单地将main方法的大部分放在while(true)循环中,循环将永远循环,直到用户输入一些sentinel值(“Enter 0 to quit”)。当他们输入“0”时,突破循环:
if(scan.nextLine().equals("0")){ break; }
希望有所帮助!
答案 1 :(得分:1)
只需使用while循环
Scanner scan = new Scanner(System.in);
while(true)
{
Student student = new Student();
System.out.println("Enter name: ");
student.setName(scan.next());
System.out.println("Enter major: ");
student.setMajor(scan.next());
System.out.println("Do you wish to continue [Y/N] ?");
if(scan.next().equalsIgnoreCase("N"))
{
break;
}
}
答案 2 :(得分:0)
将student1
添加到ArrayList
后,您可以删除它的引用,为其提供新的Student
对象值。
答案 3 :(得分:0)
首先设置Major,使用major1变量,并将Student类的主要属性设为“Major”
从Major
的声明开始使用循环填充所有内容
Major major1 = new Major();
while(true) {
Student temp = new Student();
System.out.println("please enter your name...");
temp.setName(scan.next());
System.out.println("Please enter the name of your major.");
Major majTemp = null;
while(majTemp == null) majTemp = getMajorPerName(scan.next());
temp.setMajor(majTemp);
majTemp.addStudent(temp.getName());
}