Java Folgende Aufgabe wie am lösen?

Xerxes18 schrieb:
Wie genau muss ich das dann machen?

Der Klasse Klausur eine interne Liste vom Typ Student hinzufügen.
Ich weiß nicht den genauen Syntax in Java, aber es dürfte nicht allzu schwer sein:

Code:
List<Student> students = new List<students>();

und dann vielleicht eine Methode, mit der man einen Studenten hinzufügen kann.
Code:
public void AddStudent(Strudent student)
{
    students.Add(student);
}

Natürlich brauchst Du noch eine Liste, die alle Studenten enthält.
Möchtest Du einen Student einer Klausur zuweisen, wird einfach nur die Referenz auf den jeweiligen Studenten den Klausuren zugewiesen.
 
Zuletzt bearbeitet:
Okay, also ich soll eine neue Arraylist in der Klasse "Klausur" erstellen, sozusagen nicht die verwenden in der schon Studenten gespeichert sind ?!

Eine frage noch:

In deiner Methode das geklammerte (Student student) ist das sowas was man auch z.B. in einer toString Methode verwendet um z.B. den Inhalt von einer Arraylist auszugeben?

PS: Ich verstehe noch einige Fachbegriffe nicht so ganz (werde das natürlich nachholen). Deswegen würde ich euch bitten diese irgendwie zu umschreiben :)
 
Auszug aus der Klasse "Klausur" (in Pseudocode)

Code:
Pseudocode:

    public class Klausur
    {
        // Sonstige Properties
        private List<Student> _students = new List<Student>();

        // Fügt der internen Liste einen Studenten hinzu, wenn dieser noch nicht in der Liste vorhanden ist
        public void AddStudent(Student student)
        {
            if(!_students.Equals(student)
            _students.Add(student);
        }
    }

Mit dieser Liste kannst Du nachvollziehen, welche Studenten für die Klausur angemeldet sind. Es wird dabei nicht das Original-Objekt des Studenten gespeichert, sondern nur ein Verweis, wo das Original-Objekt zu finden ist, falls Du bspw. den Namen des Studenten abfragst.
 
Code:
 private List<Student> _students = new List<Student>();

da sagt er mir bei List am Ende: Cannot instatitate the type List<Student>
 
Ich schrieb "Pseudocode".
D.h. man muss diesen "Code" für die jeweilige Programmiersprache anpassen.
 
Oh, alles klar werde ich machen!

Ich hoffe das ist folgendermaßen richtig:

Code:
 private ArrayList<Student> students = new ArrayList<Student>();

    
    public void AddStudent(Student student)
    {
    	if(!students.equals(student)){
    		
    		students.add(student);
    	}

    }


Wie könnte ich denn nun weitermachen?
 
Zuletzt bearbeitet:
Ich erlaube mir mal ein paar generelle Kommentare in Deinem Code.

Code:
 // Die Variable sollte vom Typ des Interfaces (sofern vorhanden) sein, in diesem Falle List<Student>
 private ArrayList<Student> students = new ArrayList<Student>();

    
    // Methodennamen beginnt man mit einem Kleinbuchstaben.
    public void AddStudent(Student student)
    {
        // Achtung, Du vergleichst hier Äpfel mit Birnen, d.h. eine Liste mit einem Student.
        // Dadurch wird diese Abfrage immer true ergeben und Du kriegt doppelte Einträge
    	if(!students.equals(student)){
    		
    		students.add(student);
    	}

    }

Richtiger wäre es so:

Code:
 private [B]List[/B]<Student> students = new ArrayList<Student>();

    public void [B]a[/B]ddStudent(Student student)
    {
    	if(!students.[B]contains[/B](student)){
    		
    		students.add(student);
    	}

    }

Nicht böse gemeint, aber ich rate Dir dringend Dich mal mit den grundlegenden Konstrukten von JAVA auseinander zu setzen, z.B. Interfaces... :)
(Um Deine Frage von drei Posts weiter oben zu beantworten: Man kann ein Interface nicht mit new instanziieren, daher klappt "List l = new List();" nicht...)
Es wird Dir viel Ärger und Fragerei ersparen und Dir auch das Programmieren in JAVA erleichtern wenn Du die Grundlagen kapiert hast.


Grüße,

Shuzz
 
gelöscht...
 
Zuletzt bearbeitet: (Hab gemerkt, dass der Kommentar des Vorposters nicht für mich war :-))
@Shuzz:

Nein, ich nehme das natürlich nicht böse, weil du ja im Grunde Recht hast, aber das bringt mich leider auch nicht weiter, weil ich bis Freitag alles fertig haben muss und alles im moment ins stocken gerät, weil ich das nicht hinbekomme.

Deswegen wollte ich das hier mit euch, Schritt für Schritt abarbeiten :)

PS: Deine Berichtigung habe ich übernommen :)

Wie sollte ich nun fortfahren?

Hallo kann mir hier bitte jemand weiterhelfen?
 
Zuletzt bearbeitet:
Sollte ich mit meiner folgenden Einschätzung komplett daneben liegen, so bitte ich um Verzeihung:


Ich glaube es ist schon sehr viel geholfen worden, angefangen vom Datenmodell bis hin zu einzelnen Methoden.

Wie Shuzz schon schrieb, scheinen Dir grundlegende Javakenntnisse zu fehlen. Diese können wir nicht ersetzen.

Jetzt noch mehr zu helfen würde fast bedeuten Dir das fertige Programm zu geben. Bei dem aktuellen Schritt-für-Schritt-Tempo würde das Ganze ohnehin nicht mehr fertig werden.

Die Aufgabe, die du hier zu lösen hast ist auch keine für Programmieranfänger. Es gab sicher schon vorherige Aufgaben, die Dich an diese herangeführt haben.

Du musst Dir unbedingt die Java-Basics aneignen. Dazu musst du Dir ein Anfängerbuch kaufen, lesen und selber anfangen zu programmieren - angefangen bei kleinen Programmen und Dich langsam steigern.


Natürlich hilft Dir das jetzt nicht weiter, deshalb scheint die einzige Lösung zu sein, dass du Dir das Programm von einem anderen Kursteilnehmer kopierst, abwandelst und rudimentär erklären lässt und dann betest, dass Dir keine Detailfragen dazu gestellt werden.
 
Zuletzt bearbeitet:
Zurück
Oben