Guten Tag zsm!
Ich bin gerade bei der Objektorientierung (Klasse,Attribute,Methoden..) dran und habe folgendes Problem:
Ich weiß bereits wie ich Variablen + V.-werte aus der Main-Klasse in eine andere Klasse übernehme. Ich kann es auch z.b. für Ausgaben benutzen. Jedoch verstehe ich noch nicht ganz, wie ich übernommene Variablen(Werte) aus der Main-Klasse in der anderen Klasse ändern kann. In den folgenden Codes habe ich die Variable richter, Typ boolean übernommen. In Methoden kann ich es benutzen, jedoch nicht ändern. In dem Fall von true auf false.
Edit: Geändert werden soll die Variable richter von true auf false in der Methode "ausgabe".
Meine Main-Klasse:
die andere Klasse:
Ich bin gerade bei der Objektorientierung (Klasse,Attribute,Methoden..) dran und habe folgendes Problem:
Ich weiß bereits wie ich Variablen + V.-werte aus der Main-Klasse in eine andere Klasse übernehme. Ich kann es auch z.b. für Ausgaben benutzen. Jedoch verstehe ich noch nicht ganz, wie ich übernommene Variablen(Werte) aus der Main-Klasse in der anderen Klasse ändern kann. In den folgenden Codes habe ich die Variable richter, Typ boolean übernommen. In Methoden kann ich es benutzen, jedoch nicht ändern. In dem Fall von true auf false.
Edit: Geändert werden soll die Variable richter von true auf false in der Methode "ausgabe".
Meine Main-Klasse:
Code:
public class Start{
public static void main(String [] args){
boolean richter = false;
Quader meinQuader;
Kugel meineKugel;
Zylinder meinZylinder;
while (richter == false) {
String produktart = InOut.readString("Produktart? ");
if (produktart.equalsIgnoreCase("Quader")) {
meinQuader = new Quader();
meinQuader.abfrage();
meinQuader.berechnung();
meinQuader.ausgabe();
richter = true;
}
else if (produktart.equalsIgnoreCase("Kugel")){
meineKugel = new Kugel();
meineKugel.kugelDatenEingabe();
meineKugel.kugelBerechnung();
meineKugel.kugelDatenAusgabe();
richter = true;
}
else if (produktart.equalsIgnoreCase("Zylinder")) {
meinZylinder = new Zylinder(richter);
meinZylinder.abfrage();
meinZylinder.berechnung();
richter = true;
meinZylinder.ausgabe();
}
else
System.out.println("Ein Fehler ist aufgetreten!");
}
}
}
die andere Klasse:
Code:
import java.text.DecimalFormat;
public class Zylinder{
// Anfang Attribute
private double zylinderpreis;
private double zylindervolumen;
private double radius;
private double hoehe;
boolean richter;
DecimalFormat a = new DecimalFormat("#0.00");
// Ende Attribute
public Zylinder(boolean prichter) {
richter = prichter;
}
// Anfang Methoden
public void abfrage() {
radius = InOut.readDouble("Radius? ");
hoehe = InOut.readDouble("Höhe? ");
}
public void berechnung() {
zylindervolumen = Math.PI * Math.pow(radius,2) * hoehe;
if (zylindervolumen > 3 && zylindervolumen < 3000)
zylinderpreis = 0.002 * zylindervolumen + 0.25;
}
public void ausgabe() {
if (zylindervolumen > 3 && zylindervolumen < 3000)
System.out.println("\nVolumen beträgt: "+a.format(zylindervolumen)+" ccm\nPreis beträgt: "+a.format(zylinderpreis)+" Euro");
else {
richter = false;
System.out.println("Das Volumen liegt nicht zwischen 3 ccm und 3000 ccm!");
}
}
// Ende Methoden
}
Zuletzt bearbeitet: