Mit einem wenig Forschung Sie viele Tutorials finden zu erreichen, was Sie beabsichtigen, aber ich werde versuchen, Sie in dem richtigen Weg einzuschlagen nur damit Sie einen answear haben und irgendwo anfangen.
Was ist ein Student? Ist es ein String, der nur einen Namen enthält, ist es ein Objekt, das einen Schüler darstellt, der einige Eigenschaften haben kann? Ein Beispiel
public class Student{
private int number;
private String name;
private int age;
// Basically anything that makes sense for a student.
public Student(int number, String name, int age){
this.number = number;
this.name = name;
this.age = age;
}
// .... Getters and Setters.
}
Sie benötigen einen Platz ist jeder Schüler hinzugefügt, um den Kurs zu speichern, ist das, was die Arraylist
List<Student> students = new ArrayList<Student>();
Student foo = new Student(23, "Foo", 22);
students.add(foo); // This is how you add to a List (in this case a List of Student objects and more precisely an ArrayList of Students).
Sie müssen halten für das heißt
die Liste ist in Ihrer Kursklasse als Instanzvariable, und fügen Sie eine Methode, in der Sie einen Schüler übergeben können und innerhalb der Methode alles, was Sie haben, ist zu Ihrer Liste der Schüler hinzufügen, können Sie sogar einige Validierung, wenn Sie möchten.
Wenn Sie mehr Zweifel haben, suchen Sie zuerst nach einer Lösung, bevor Sie Fragen stellen, die leicht gefunden werden können. Hier sind einige Referenzen:
Java List
Java ArrayList
EDIT so, wie Sie Ihre Schüler hinzufügen, ist fast fertig, aber Sie haben einen Fehler und auch die Liste der Studenten nur innerhalb des Konstruktors befindet, Dies bedeutet, dass Sie die Liste nicht zum Speichern von Schülern außerhalb verwenden können.
Im Folgenden finden Sie den richtigen Code
/**
* Constructor with parameters
* @param noOfStudents integer
* @param courseName String with the Course name
* @param teacher String with the teacher
*/
public Course(int noOfStudents, String courseName, String teacher){
this.studentList = new ArrayList<Student>(); // The declaration is in above in your class, as an instance variable.
this.courseName = courseName;
this.teacher = teacher;
}
ArrayList<Student> studentList; // You can move this so it sits above besides your other variables, but it will also work like this.
public boolean addStudent(Student student){
if (student==null || studentList.contains(student)) { // You had Student.contains, wich will give an error because Student (class) doesnt have a static method named contains.
return false;
}
studentList.add(student); // you had the same problem here, you had Student.add(student), wich is wrong and it would not compile.
return true;
}
Stellen Sie sicher, dass Sie die Student-Klasse erstellt haben, und es ist ohne Fehler.
Getestet und funktioniert Code, es ändern, um Ihre Bedürfnisse genauer zu erfüllen
import java.util.ArrayList;
public class Course {
private String courseName;
private int noOfStudents;
private String teacher;
public static int instances = 0;
private ArrayList<Student> studentList;
//Getters
public String getCourseName(){
return this.courseName;
}
public int getNoOfStudents(){
return this.noOfStudents;
}
public String getTeacher(){
return this.teacher;
}
//Setters
public void setCourseName(String courseName){
this.courseName = courseName;
}
public void setNoOfStudents(int noOfStudents){
this.noOfStudents = noOfStudents;
}
public void setTeacher(String teacher){
this.teacher = teacher;
}
/**
* Default constructor. Populates course name, number of students with defaults
*/
public Course(){
instances++;
this.noOfStudents = 0;
this.courseName = "Not Set";
this.teacher = "Not Set";
}
/**
* Constructor with parameters
* @param noOfStudents integer
* @param courseName String with the Course name
* @param teacher String with the teacher
*/
public Course(int noOfStudents, String courseName, String teacher){
this.studentList = new ArrayList<Student>();
this.courseName = courseName;
this.teacher = teacher;
}
public boolean addStudent(Student student){
if (student==null || studentList.contains(student)) {
return false;
}
studentList.add(student);
return true;
}
public void printStudents(){
for(Student s : studentList)
System.out.println(s.getName() + ", with " + s.getAge() + " year(s)");
}
public static class Student{
private int number;
private String name;
private int age;
// Basically anything that makes sense for a student.
public Student(int number, String name, int age){
this.number = number;
this.name = name;
this.age = age;
}
// .... Getters and Setters.
public int getNumber(){
return this.number;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
}
// Testing code
public static void main(String[] args){
Course oop = new Course(6, "Object Oriented Programming", "LeBron James");
oop.addStudent(new Course.Student(6, "Michael Jordan", 56));
oop.addStudent(new Course.Student(23, "Kyrie Irving", 24));
oop.addStudent(new Course.Student(14, "Kevin Love", 27));
System.out.println(oop.getCourseName() + " has the following students");
oop.printStudents();
}
}
"Im nicht sicher, wie die Array-Liste zu implementieren." Sie implementieren die ArrayList nicht. Es ist eine integrierte Sammlung. Erklären Sie es wie folgt: Liste Studenten = neue ArrayList (); '. Dies setzt voraus, dass Sie tatsächlich die Student-Klasse erstellt haben. –
Arqan
Haben Sie die Dokumentation gelesen und/oder Tutorials/Guides über 'ArrayList' angeschaut? – tnw
@Arqan wo deklariere ich es? – donk2017