Ändern Sie die Methode so ab, dass Ihr ein beliebiger
Zahlenwert vom Typ
int übergeben werden kann und überprüfen Sie Ihre
Änderung(en).
Ist der Code, den du mir geschickt hast schon die Lösung dafür
oder erfüllt mein Programm die Aufgabenstellung:
Jupp meine Modifikation der Methode
meineMethode(int xKonstant)
erfüllt den ersten Schritt, den du machen musst.
Mein Vorschlag ist ein perfektes Beispiel für eine gute Struktur. Hättest du die Aufgabe von Anfang an so gebastelt, müsstest du nur vor dem Aufruf der
meineMethode(int xKonstant)
, dir von irgend wo den Wert für xKonstante holen. Eine Änderung der Logik wäre nicht nötig. Genau das zeichnet eine gute Struktur aus. idealer Weise kein Abhängigkeiten oder nur geringe…
Ich kann dir das hier nur empfehlen:
http://www.clean-code-developer.de
ich habe bei meiner Modifikation nur zwei der Prinzipien (teilweise) angewandt.
http://www.clean-code-developer.de/wiki/CcdOrangerGr…
http://www.clean-code-developer.de/wiki/CcdOrangerGr…
Sicherlich erscheint das Ganze bei einer so simplen Aufgabe als überflüssig, aber wenn man das Ganze von ersten Tag an beherzigt, werden die großen Projekt später „locker vom Hocker“ umgesetzt.
Meine Empfehlung für die Aufgabe:
Du brauchst Klassen für die Berechnung, Eingabe, Ausgabe und für das eigentliche Programm.
public class Berechnung
{
private Ausgabe ausgabe;
public Berechnung(Ausgabe ausgabe)
{
this.ausgabe = ausgabe;
}
public void meineMethode(int xKonstante)
{
int x = xKonstante;
x = (int) Math.pow(x, 2);
this.ausgabe.printOnConsole("Der Wert von x" + (char) 253 + "beträgt" + x);
}
}
public class Eingabe
{
public int leseEingabe() throw Exception
{
hier kommt dein Code mit der JOptionPane usw. hin
wenn ein Eingabefehler (NumberFormatException oder NullPointerException) auftritt muss du ein Exception werfen
damit die Benutzende Klasse weiß, hier stimmt was nicht und entsprechend reagieren kann
}
}
public class Ausgabe
{
public void printOnConsole(String ausgabe)
{
System.out.println(ausgabe);
}
}
public class MeinProgramm
{
private Ausgabe ausgabe;
private Eingabe eingabe;
private Berechnung berechnung;
public MeinProgramm()
{
this.ausgabe = new Ausgabe();
this.eingabe = new Eingabe();
this.berechnung = new Berechnung(this.ausgabe);
}
public void starteProgramm()
{
bau hier eine Schleife die entsprechend auf die Eingabe (this.eingabe.leseEingabe():wink: reagiert
und den Wert an Berechnung weiter gibt (this.berechnung.meineMethode(int xKonstante):wink:
Ebenfalls muss du die Exeption welche von der Eingabe kommen entsprechend behandeln, in dem du diese
mit try-catch abfängst und an die Ausgabe einen Text leitest (this.ausgabe.printOnConsole("Ihre Eingabe ist Falsch"):wink:
}
}
public class Main
{
public static void main(String args[])
{
MeinProgramm programm = new MeinProgramm();
programm.starteProgramm();
}
}
Die Initialisierung im Konstruktor der Klasse MeinProgramm wären eingentlich eine Aufgabe für die MAIN-Methode, aber da du mit keinen Interfaces oder Vererbungen arbeitest (kommt später bestimmt) kann man das Ganze auch so machen
Besser wäre
public class Main
{
public static void main(String args[])
{
//init der Umgebung
Ausgabe ausgabe = new Ausgabe();
Eingabe eingabe = new Eingabe();
Berechnung berechnung = new Berechnung(this.ausgabe);
//prog starten
MeinProgramm programm = new MeinProgramm(ausgabe, eingabe, berechnung);
programm.starteProgramm();
}
}