OOP / Verständnisfrage zum Konstuktor (siehe code)

rd

Mitglied
Hallo

Ich habe noch etwas schwierigkeiten bezüglich Konstuktor. Zur vereinfachung hier mal mein aktuelles Problem.

Es soll über den Konstrukter eine QuadratischeGleichung ermittelt werden. Soweit so gut. Da meine bisherien Lösungensideen nicht OOP entspachen, habe ich eben alles umgeschrieben. Den aktuellen Code findet Ihr unten. Mein Konstrukter hat so keine wirkliche Notwendigkeit (?) - abgesehen von den Paramenter. Bin ich auf den Holzweg oder passt das bisher ?

Vielen Dank.
mfg



[Java]
public static void main (String [] args) {

Scanner s1 = new Scanner (System.in);
System.out.print("Geben Sie den Wert für a ein: ");
double a = s1.nextDouble();

System.out.print("Geben Sie den Wert für b ein: ");
double b = s1.nextDouble();

System.out.print("Geben Sie den Wert für c ein: ");
double c = s1.nextDouble();
s1.close();

QuadratischeGleichung q1 = new QuadratischeGleichung(a,b,c );
q1.setA(a);
q1.setB(b);
q1.setC(c);
[/Java]
[Java]
public class QuadratischeGleichung {

private double diskriminante;
private double wert_a,wert_b,wert_c;
private double solveX1,solveX2:

public QuadratischeGleichung(double a, double b, double c) {
}
// Erster Schnittpunkt mit X-Achse:
public double solveX1() {
return solveX1= ( wert_b*(-1.0) + (Math.sqrt( this.diskriminante )) ) / (2.0*wert_a);
}

public void setA(double wert_A) {
this.wert_a = wert_A;
}
public void setB(double wert_B) {
this.wert_b = wert_B;
}
public void setC(double wert_C) {
this.wert_c = wert_C;
}
}

[/Java]



mfg
 

Agaton Sax

Mitglied
Es soll über den Konstrukter eine QuadratischeGleichung ermittelt werden.
Der Konstruktor ist da, um das Objekt zu initialisieren, nicht um die eigentlichen Berechnungen durchzuführen.
Mein Konstrukter hat so keine wirkliche Notwendigkeit (?) - abgesehen von den Paramenter. Bin ich auf den Holzweg oder passt das bisher ?
Nö. Du übergibst im Konstruktor 3 Werte, die aber nicht verwendet werden. Initialisiere das Objekt im Konstruktor und lösche die überflüssigen Setter.

Davon abgesehen, sind die Attribute diskriminante, solveX1 und solveX2 überflüssig. Du hast 2 Methoden welche x1 und x2 berechnen, da brauchst du nichts in irgendwelchen Attributen zwischenspeichern.

Vereinfacht sähe das so aus:
Java:
public class QuadratischeGleichung {

    private double a, b, c:
 
    public QuadratischeGleichung(double a, double b, double c) { ... }

    public double x1() { ... }

    public double x2() { ... }
}
 
Zuletzt bearbeitet:

rd

Mitglied
Vielen Dank für den Hinweis.

Bei meinen ersten Ansatz, habe ich den Konstruktor wie folgt aufgebaut. Das hat in meinen Augen mehr Sinn gemacht, wie im letzen gezeigen Code. Allerdings wurde mir gesagt, dass ich das nicht brächte wegen Redudanzgeschichte....Die Berechnung von x1 und x2 hatte ich allerdings in einer void Methode und via get aufgerufen.

Die solveX1 bzw solveX2 entsprachen unsprünglich x1 bzw x2. Ich wollte einen lesbareren variablennamen verwenden, daher habe ich x1 zu solveX1 umbenannt. Die diskriminante wollte ich noch miteinbauen, da unter der Wurzen (diskriminante) kein negativer Wert vorhanden sein darf.


Java:
    public class QuadratischeGleichung {
     
    private double wert_a, wert_b, wert_c:
     
    public QuadratischeGleichung(double a, double b, double c) {
    this.wert_a = a;
    this.wert_b = b;
    this.wert_c = c;
 
   }
    
     }
 

xerion21

Mitglied
Java:
    public class QuadratischeGleichung {
     
    private double wert_a, wert_b, wert_c:
     
    public QuadratischeGleichung(double a, double b, double c) {
    this.wert_a = a;
    this.wert_b = b;
    this.wert_c = c;
 
   }
    
     }

Ich würde die Variabeln
Java:
 private double wert_a, wer_b, wert_c;
nicht so nennen. Bei Variabeln ist es logisch, dass diese einen Wert beinhalten. Daher würde ich sie einfach
Java:
 private double a, b, c
nennen. Diese kannst du dann ja mit this aufrufen.
 

Network

Top Contributor
Und in Java lautet die Namenskonvention keine Unterstriche zu verwenden für Variablen-Namen sondern stattdessen "wertA", "wertB", "wertC", so ganz nebenbei.
Und nein das ist nicht egal wenn der Code von anderen gelesen werden soll :p Nicht schlimm hier, aber wollte es mal nebenbei erwähnt haben.
 

rd

Mitglied
Danke für den Hinweis.

Ich hätte eine kleine zwischen frage bezüglich get. Folgendes Beispiel weist doch überflüssigen Code bzw macht kein sinn ;

Java:
public class ..... {

	public void x(){
		this.x = // wert;
	}
	public double getX(){
		this.x();
		return this.x;
	}

Wenn im UML stehen würde +setA() - dies brächte man doch eigentlich nicht, da im konstrukter die benötigen Werte übergeben wurden oder ?
 
Zuletzt bearbeitet:

xerion21

Mitglied
Danke für den Hinweis.

Ich hätte eine kleine zwischen frage bezüglich get. Folgendes Beispiel weist doch überflüssigen Code bzw macht kein sinn ;

Java:
public class ..... {

	public void x(){
		this.x = // wert;
	}
	public double getX(){
		this.x();
		return this.x;
	}

Wenn im UML stehen würde +setA() - dies brächte man doch eigentlich nicht, da im konstrukter die benötigen Werte übergeben wurden oder ?

Es kommt immer darauf an, ob du den Wert x nochmal im nachhinein verändern möchtest.

Warum rufst du bei der Funktion getX(), this.x() auf, das macht alles keinen Sinn :D

So als Tipp, was es einfacher macht Klassen und Werte auseinander zu halten: Bei Klassen wird der erste Buchstabe groß geschrieben, bei Variabeln wird alles klein geschrieben.

Hier mal ein Beispiel:

Java:
public class Rechner {
  private double x, y;

  public Rechner() {
  }

  public Rechner(double x, double y) {
    this.x = x;
    this.y = y;
  }

  public double getX() {
    return this.x;
  }

  public void setX(double x) {
    this.x = x;
  }

  // analog zu Y

}
 
Zuletzt bearbeitet:

rd

Mitglied
Hallo

Ich habe schon vermutet das es kein sinn macht, wollte aber nur sicher gehen. ;-) Danke für das Beispiel.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
A Verständnisfrage Java Basics - Anfänger-Themen 12
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
P Verständnisfrage: PageFactory.initElements Java Basics - Anfänger-Themen 2
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
Vivien Kurze Verständnisfrage zu Java Point aus java.awt.* Java Basics - Anfänger-Themen 5
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
P Verständnisfrage zum Mapping Java Basics - Anfänger-Themen 3
M Java Version Verständnisfrage Java Basics - Anfänger-Themen 16
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Verständnisfrage zur Konsolenausgabe Java Basics - Anfänger-Themen 2
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
D Verständnisfrage zur Modellierung einer HDD Java Basics - Anfänger-Themen 17
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
S Verständnisfrage lokale Ordnerpfade Java Basics - Anfänger-Themen 1
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
C Verständnisfrage zu Modulo Java Basics - Anfänger-Themen 6
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
L Verständnisfrage - Speicherabbild Java Basics - Anfänger-Themen 4
melly_ Verständnisfrage zu args Java Basics - Anfänger-Themen 3
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
K Verständnisfrage eines Abschnitts Java Basics - Anfänger-Themen 6
K Rekursion Verständnisfrage Java Basics - Anfänger-Themen 19
S Modell View Controller Verständnisfrage Java Basics - Anfänger-Themen 24
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
JavaTalksToMe Erste Schritte Println-Frage (Verständnisfrage) Java Basics - Anfänger-Themen 1
R Verständnisfrage zu Objekten u. Übergabeparameter Java Basics - Anfänger-Themen 8
G Collections Verständnisfrage zur For-Each-Schleife Java Basics - Anfänger-Themen 7
b1ck Interface Verständnisfrage zum GUI mit "swing" Java Basics - Anfänger-Themen 1
kilopack15 Verständnisfrage zur Verwendung von notify() bei Threads Java Basics - Anfänger-Themen 2
G Verständnisfrage zu for-each Java Basics - Anfänger-Themen 4
DontFeedTheTroll Erste Schritte Verständnisfrage zu If-Anweisung Java Basics - Anfänger-Themen 7
K Rekursion-Verständnisfrage Java Basics - Anfänger-Themen 4
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
Z Verständnisfrage Anfängerprogramm Java Basics - Anfänger-Themen 0
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
G Methoden Verständnisfrage zur Methoden Java Basics - Anfänger-Themen 7
LionAge Kapselung, Verständnisfrage zur Objekterzeugung Java Basics - Anfänger-Themen 4
Z Verständnisfrage zum Multithreading Java Basics - Anfänger-Themen 3
gamebreiti Verständnisfrage zu contains() Java Basics - Anfänger-Themen 10
A Verständnisfrage - Koordinatenumrechnung Java Basics - Anfänger-Themen 9
J Erste Schritte Verständnisfrage im Bezug auf das (richtige) Programmieren Java Basics - Anfänger-Themen 5
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage Array Java Basics - Anfänger-Themen 2
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
I Verständnisfrage zu BridgePattern, Verwedung von super() Java Basics - Anfänger-Themen 4
P Verständnisfrage Java Basics - Anfänger-Themen 3
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
D Input/Output Verständnisfrage Verzeichnis-/Dateiliste erstellen & Dateikonvertierung Java Basics - Anfänger-Themen 1
S Verständnisfrage zu Anweisungen und deren Wirkung Java Basics - Anfänger-Themen 7
H Verständnisfrage für oder Anweisung Java Basics - Anfänger-Themen 8
E Threads Verständnisfrage bzgl. Threads und Sleep Java Basics - Anfänger-Themen 2
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage zu Java-Ausgabe Java Basics - Anfänger-Themen 3
S Verständnisfrage Java Basics - Anfänger-Themen 2
N Verständnisfrage Code Java Basics - Anfänger-Themen 8
B Verständnisfrage Java Basics - Anfänger-Themen 2
H Interface Comparable Verständnisfrage Java Basics - Anfänger-Themen 6
B Verständnisfrage Codezeile Java Basics - Anfänger-Themen 7
B Verständnisfrage:Beispielprogramm BlueJ Java Basics - Anfänger-Themen 3
M Kurze Verständnisfrage zu einer Java Aufgabe Java Basics - Anfänger-Themen 12
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
R Verständnisfrage Referenzvariablen in array Java Basics - Anfänger-Themen 3
M Verständnisfrage: Objekt erzeugen u. zuweisen Java Basics - Anfänger-Themen 16
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
S Verständnisfrage: Exception Gebrauch Java Basics - Anfänger-Themen 2
R Verständnisfrage NPE Java Basics - Anfänger-Themen 5
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
P Java Objekte - Verständnisfrage Java Basics - Anfänger-Themen 9
N Verständnisfrage zu folgendem Programm Java Basics - Anfänger-Themen 2
L Grundlegende Verständnisfrage Hasmap Referenzen Java Basics - Anfänger-Themen 4
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
M Verständnisfrage im Umgang mit Map Java Basics - Anfänger-Themen 10
K Verständnisfrage zu int.length und String.length() Java Basics - Anfänger-Themen 4
G 2D Array gleichsetzen verständnisfrage Java Basics - Anfänger-Themen 2
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
N verständnisfrage java.util.Calendar Java Basics - Anfänger-Themen 4
G Datentypen bits, bytes, chars - Verständnisfrage Java Basics - Anfänger-Themen 5
E Verständnisfrage zu Shutdownhook Java Basics - Anfänger-Themen 5
D Verständnisfrage: Java und MySql Java Basics - Anfänger-Themen 3
F Rekursion Verständnisfrage Java Basics - Anfänger-Themen 6
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
Z Comparator Verständnisfrage Java Basics - Anfänger-Themen 5
D Verständnisfrage zu Funktionen Java Basics - Anfänger-Themen 6
H Verständnisfrage Persistenz Java Basics - Anfänger-Themen 10
neurox Verständnisfrage zu Threads Java Basics - Anfänger-Themen 4
E Verständnisfrage Syntax: frame.getContentPane().add(button) Java Basics - Anfänger-Themen 11
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
F Verständnisfrage Objekt instanzierung / Polymorphie Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben