Schere ,Stein, Papier in Java?


08.11.2024, 17:49

Den Beitrag einfach ignorieren, habe gerade selber meine Fahler gefunden

2 Antworten

Schade, dass du den Fehler schon gefunden hast. :) Ich hatte mich schon darauf gefreut, den Code von jemand anderem zu debuggen. 

Könntest du erklären, was das Problem war? Das könnte sicher auch anderen helfen, falls sie mal vor einem ähnlichen Fehler stehen.

Falls du Java lernen möchtest, hätte ich einen Tipp: Erstelle ein Programm mit mehreren Klassen und Vererbung – zum Beispiel eine Klasse für ein Auto. So kannst du mehrere Autos mit unterschiedlichen Eigenschaften wie PS-Zahl usw. erzeugen.

Hier ist eine detaillierte Anleitung, (stammt von meinem Lehrer). Ich hoffe, sie hilft dir weiter. Wenn du magst, kann ich dir auch noch zusätzliche Materialien geben, einschließlich theoretischem Hintergrund.

Aufgabe 1: Klasse erstellen

Erstelle eine Klasse namens Auto die folgende Instanzvariablen hat: Marke und Baujahr. Erstelle dann einen Konstruktor, der diese beiden Variablen initialisiert, sowie Getter- und Setter-Methoden für diese Variablen.

Aufgabe 2: Objekte erstellen

Erstelle eine Klasse Main mit der main Methode. Erstelle dann zwei Objekte der Klasse Auto und gib deren Eigenschaften auf der Konsole aus (sysOut).

Aufgabe 3: Methoden

Füge der Klasse Auto eine Methode berechneAlter hinzu, die das Alter des Autos basierend auf dem aktuellen Jahr berechnet und zurückgibt. Wie du das aktuelle Jahr in java bekommst kannst du im Internet nachschauen.

Aufgabe 4: Überladen

Überlade den Konstruktor der Klasse Auto, um ein Auto ohne spezifisches Baujahr zu erstellen (nimm in diesem Fall das aktuelle Jahr).

Aufgabe 5: Statische Methoden und Variablen

Erstelle eine Variable autoZähler und eine Methode getAutoZähler in der Klasse Auto, um die Anzahl der erstellten Auto-Objekte zu zählen. Überprüfe auch ob der Zähler funktioniert!

Aufgabe 6: Verwendung von this

Überprüfe ob deine Setter-Methoden und der Konstruktor der Klasse Auto das Schlüsselwort this korrekt verwendet. Beschreibe in deinen Worten in einigen Sätzen was dieses Schlüsselwort macht und wozu man es braucht.

Aufgabe 7: Kapselung

Stelle sicher, dass die Instanzvariablen in der Klasse ordnungsgemäß gekapselt sind (um die Datenintegrität zu gewährleisten).

Aufgabe 8: Erweiterte Kapselung

Verbessern die Kapselung der Klasse Auto. Das kannst du machen indem du überprüfst, dass das Baujahr nicht in der Zukunft liegt. Auch die Marke sollte nicht null oder leer sein. Da wir Exception Handling noch nicht gemacht haben, verwende einen Default-Wert wenn eine falsche Eingebe gemacht wird.

Aufgabe 9: Kopieren

Modifiziere die Klasse Auto so, dass wenn beim Erstellen eines Autos ein Objekt vom Typ Auto übergeben wird, eine Kopie des Autos zurückgegeben wird. Kurz gesagt es soll möglich sein Auto Objekte zu Kopieren.

Mal als kleiner Hinweis, nachdem du die Lösung selbst gefunden hast, man kann Bedingungen auch zusammenfassen, spart jede Menge Schreibarbeit :)

if (userchoice==pcchoice) {
  // unentschieden
} else if (((userchoice==schere) && (pcchoice==papier)) ||
           ((userchoice==stein) && (pcchoice==schere)) ||
           ((userchoice==papier) && (pcchoice==stein))) {
  // user gewonnen
} else {
  // pc gewonnen
}
Woher ich das weiß:Berufserfahrung – Softwareentwickler & Admin