Hallo,
es fällt mir schwer durchzublicken was genau "gutes OOP" heißt. Ich hab jetzt ein Programm geschrieben, dass Celsius in Fahrenheit umrechnet.
Es wäre mir fürs Selbststudium wichtig, wenn jemand vielleicht mal schauen könnte was an meinem geschrieben Code zu verbessern wäre.
zB
-> Konstruktor so ok? kommt mir irgendwie komisch vor, da das was eigentlich da drin steht doch in eine Methode gehoert oder?
-> Sind die Getter überflüssig? Brauch ich Setter?
-> Sind die Variablen so gut genutzt bzw deklariert? (private/public?)
-> cels = richtigeEingabe("^[0-9]?[0-9].?[0-9]*?$"); Soll EIGENTLICH nur 1 oder 2 Zahlen vor dem Komma und 1 oder 2 Zahlen hinter dem Komma zulassen. Das Kommas [.] soll ebenfalls optional sein
Klasse Temperatur
Klasse BerechneTemperatur
Vielen Dank
es fällt mir schwer durchzublicken was genau "gutes OOP" heißt. Ich hab jetzt ein Programm geschrieben, dass Celsius in Fahrenheit umrechnet.
Es wäre mir fürs Selbststudium wichtig, wenn jemand vielleicht mal schauen könnte was an meinem geschrieben Code zu verbessern wäre.
zB
-> Konstruktor so ok? kommt mir irgendwie komisch vor, da das was eigentlich da drin steht doch in eine Methode gehoert oder?
-> Sind die Getter überflüssig? Brauch ich Setter?
-> Sind die Variablen so gut genutzt bzw deklariert? (private/public?)
-> cels = richtigeEingabe("^[0-9]?[0-9].?[0-9]*?$"); Soll EIGENTLICH nur 1 oder 2 Zahlen vor dem Komma und 1 oder 2 Zahlen hinter dem Komma zulassen. Das Kommas [.] soll ebenfalls optional sein
Klasse Temperatur
Java:
package nichtStatisch;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Tempertaur {
private double fahrenheit;
private double celsius;
private String cels;
public void tempUmrechnen() {
fahrenheit = (celsius * 9.0 / 5.0) + 32.0;
System.out.println("Gegeben sind: " + celsius
+ "° Grad Celsius und das entspricht: " + fahrenheit
+ "° Fahrenheit");
}
/**
*
* Liest die Daten durch <code>input</code> ein!
*
* @param input
* @return Eingabe
*/
public String richtigeEingabe(String input) {
Pattern p = Pattern.compile(input);
String richtig = null;
boolean repeat = true;
while (repeat) {
try {
BufferedReader eingabe = new BufferedReader(
new InputStreamReader(System.in));
richtig = eingabe.readLine();
Matcher m = p.matcher(richtig);
repeat = !m.matches();
} catch (IOException ioe) {
System.out.println("Das war zu erwarten! ");
ioe.printStackTrace();
}
}
return richtig.trim();
}
// GETTER - public
public double getCelsius() {
return celsius;
}
public double getFahrenheit() {
return fahrenheit;
}
public String getCels() {
return cels;
}
// SETTER - private
// Konstruktor
public Tempertaur() {
System.out
.println("Geben Sie die Tempperatur an: ");
cels = richtigeEingabe("^[0-9]?[0-9].?[0-9]*?$");
try {
celsius = Double.parseDouble(cels);
} catch (NumberFormatException e) {
System.out.println("Schlimme Exception! ");
e.printStackTrace();
}
}
}
Klasse BerechneTemperatur
Java:
package nichtStatisch;
import java.io.IOException;
import nichtStatisch.Tempertaur;
;
public class BerechneTemperatur {
/**
* Die <code>Main-Methode</code> nimmt 2 Werte an:
* <ul>
* <li>Celsius</li>
* <li>Fahrenheit</li>
* </ul>
* rechnet dann Celsius in Fahrenheit um! <br>
* <br>
*/
public static void main(String[] args) throws IOException {
Tempertaur test = new Tempertaur();
test.tempUmrechnen();
}
}
Vielen Dank
Zuletzt bearbeitet: