Hallo,
ich hab ein Problem ich soll eine Klasse "Vorlesung" erstellen.
Diese soll folgende Attribute "titel:String" und "sws:int" enthalten.
Dazu soll es folgende Methoden geben getter und setter.
Und zusätzlich equals(object o) und toString().
Bei den letzten zwei Methoden fällt es mir schwer die Methoden passend einzusetzen. Habt ihr vielleicht eine Idee?
Ich habe zwei Klassen erstellt wegen der Übersichtlichkeit für mich.
Macht es Sinn eine equals(object o) zu machen bei der Klasse Vorlesung ob z.B. ein Titel eingegeben wurde oder nicht? P.S. bin gerade dabei diese Abfrage zu machen.
Eine equals-Methode dient nicht dazu zu prüfen, ob irgendwelche Instanz-Variablen gesetzt wurden oder nicht, sondern sie dient (wie der Name schon sagt) dazu zu prüfen, ob zwei Objekte gleich sind. Was genau das nun bedeutet hängt vom Context ab. Wichtig ist im Grunde nur, dass der equals()-contract eingehalten wird.
Ok dann hatte ich das falsch verstanden! Könnte ich denn dann "temp" mit "VorlesungsTitel" prüfen ob die zwei Objekte gleich sind? Ich muss es halt einbauen weil es in der Aufgabenstellung so gefordert ist.
1. hast du bei Vorlesung kein temp sondern du hast zwei Vorlesungsobjekte. Und jetzt kannst du dir zuerst mal den Methodenrumpf hinschreiben ! Und ausserdem in Worten wann sind zwei Vorlesungsobjekte gleich ? Wenn sie den gleichen Titel haben ? Oder müssen noch weitere Bedingungen erfüllt sein ??
@JStein52 zu dem ersten stimmt temp und VorlesungTitel sind zwei Objekte. Ich hätte gesagt, dass zwei Objekte gleich sind wenn sie den gleichen Titel haben, aber das ist bestimmt zu einfach oder?
Warum sollte das zu einfach sein ? Kann man so machen. Es käme ja sowieso nur noch in Frage dass auch diese sws-Nummer gleich ist.
Und jetzt schreibst du in der Klasse Vorlesung eine equals-Methode die genau das tut: die Titel vergleichen und wenn sie gleich sind true zurückliefern, ansonsten false.
publicclassClub{int numberOfPersons;int sm;@Overridepublicbooleanequals(Object o ){if( o ==null)returnfalse;if( o ==this)returntrue;if(! o.getClass().equals(getClass()))returnfalse;Club that =(Club) o;returnthis.numberOfPersons == that.numberOfPersons
&&this.sm == that.sm;}}
Danke dafür hatte das Beispiel auch gefunden, aber ich hab es für meine Klasse nicht richtig hinbekommen. Ich werde mich morgen nochmal an die Aufgabe setzen. Aber danke für deine Hilfe!