如何从java中的类创建大量实例

时间:2012-11-18 01:58:46

标签: java

我是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的实例中?

非常感谢!

4 个答案:

答案 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());
}