Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich habe versucht ein kleines Programm zu schreiben, dass 2 Zahlen in einer Unterklasse miteinander vergleicht und die größere Zahl zurückgibt und in der Mainklasse auswirft. Klappt glaube ich soweit.
Zum Maximum ermitteln hab ich eine Unterklasse hinbekommen.
Eben jenes ermittelte Maximum hätte ich aber gerne in einer erneuten Unterklasse wieder mit einer Zahl verglichen, z.B "Ist die Zahl > 4" und falls ja, den Wert -1 an die Main zurückgeben und dort ausgeben lassen.
Leider funktioniert das nicht und ich werd aus nichts mehr Schlau
Das ich die bereits ermittelte größere Zahl nochmal mit etwas vergleiche muss nicht sein, aber ich komme nicht auf eine Lösung, wie ich nur für die ausgabe sonst eine Klasse einrichten kann.
Hier das Programm:
Java:
package javaapplication22;
import java.util.Scanner;
public class JavaApplication22 {
public static void main(String[] args) {
Scanner eingabe = new Scanner(System.in);
System.out.println("Bitte geben Sie eine Zahl ein");
int Zahl1 = eingabe.nextInt();
int Zahl2 = 4;
int maxZahl = maximum(Zahl1, Zahl2);
int Ausgabe = ausgeben(maxZahl);
System.out.println(Ausgabe);
}
public static int maximum(int x, int y) {
if (x < y) {
return x;
} else {
return y;
}
}
public static int ausgeben(int x) {
if (x > 4) {
x = x - 1;
return x;
}
return x;
}
}
Mir würde auch die Lösung, wie ich die ermittelte größere Zahl in einer weiteren Unterklasse ausgebe schon reichen, ohne diesen x>4 Vergleich.
Eigentlich würde ich gerne nach dem return x und return y meine größere Zahl wie ich es gemacht habe in der Main ausgeben. Es wird aber explizit verlangt, für die Ausgabe eine weitere Unterklasse zu programmieren. Wozu und wie mache ich das?
Falls jemand das Programm dahingegen etwas erweitern, reduzieren könnte wäre ich sehr Dankbar, vielleicht hilft mir das dann auf die Sprünge.
Das "Wozu" ist erklärbar. In der objektorientierten Programmierung (OOP) ist es sinnvoll, einer Klasse nur eine Aufgabe zukommen zu lassen. Wenn du also eine Klasse hast, die etwas vergleicht, dann sollten die Ein- und Ausgabe von je einer dafür spezialisierten Klassen übernommen werden. Dadurch verbessern sich die Übersichtlichkeit, die Testbarkeit und die Wartbarkeit von Software.
Eine neue Klasse erstellst du einfach, indem du eine neue Datei erstellst und darin die Klasse programmierst. Die Datei hat dabei den selben Namen wie die Klasse. In deiner bestehenden Klasse, kannst du die neue Klasse dann verwenden (evtl. vorher importieren). Du verwendest hoffentlich eine IDE, damit sollte das ganz einfach sein.
Um an die Antwort von @temi anzuknüpfen, hilft es vielleicht, sich das bildlich vorzustellen. Beispielsweise an einem Geldautomaten: der hat - von außen erkennbar - eine Tastatur, einen Kartenleser, einen Monitor und eine Geldausgabe. Jedes dieser Gräte hat seine Aufgabe und keines dieser Geräte muss wissen, dass es das jeweils andere Gerät gibt. Die Geräte sind also nicht integriert, sondern einzeln vorhanden. Das erlaubt z. B. einen einfachen Wechsel eines defekten Kartenlesers: kaputten Kartenleser ausbauen, neuen Kartenleser einbauen, anstecken, fertig. Gilt natürlich analog für die anderen Geräte.
Und das baut man in OO-Systemen nach, so dass man am Ende ein System von Objekten erhält, die durch Zusammenarbeit ein Problem lösen.