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.
habe eine Aufgabe, bei der ich zwei Behälter habe, die Flüssigkeit speichern sollen. Um diese vom einen zum anderen Behälter zu tauschen, wird eine Pumpe benutzt. Diese soll wiederum als eigenes Objekt erstellt werden.
Nun weiß ich nicht, wie ich dem Konstruktor im Code Parameter übergeben. Mir wurde gesagt, dass die Behälter "quelle" und "ziel" deklariert und initialisiert werden müssen.
Aber welcher Wert wird den beiden Behältern zugewiesen, wenn sie vom Typ Behälter sind?
Java:
class Behaelter {
private int fuellstand;
public Behaelter(int fuellstand) {
this.fuellstand = fuellstand;
}
public int getFuellstand() {
return fuellstand;
}
public int aufnehmen(int menge) {
fuellstand += Math.min(menge, 100 - fuellstand);
return fuellstand;
}
public int abgeben(int menge) {
int abgabe = Math.min(menge, fuellstand);
fuellstand -= abgabe;
return abgabe;
}
}
class Pumpe {
public Behaelter quelle;
public Behaelter ziel;
public Pumpe(Behaelter quelle, Behaelter ziel) {
this.quelle = quelle;
this.ziel = ziel;
}
public void Umpumpen(int menge) {
int abgeben = quelle.abgeben(menge);
ziel.aufnehmen(abgeben);
}
}
public class wasserbehälter {
static void ausgabe(Behaelter behaelter1, Behaelter behaelter2) {
System.out.println("Behaelter 1 ----------------- Behaelter 2");
System.out.print(behaelter1.getFuellstand());
System.out.print(" ----------------- ");
System.out.println(behaelter2.getFuellstand());
}
public static void main(String[] args) {
Behaelter behaelter1 = quelle;
Behaelter behaelter2 = ziel;
Pumpe pumpe1 = new Pumpe();
pumpe1.Umpumpen(60);
}
}
Behaelter quelle = new Behaelter(100);
Behaelter ziel = new Behaelter(0);
Pumpe pumpe1 = new Pumpe(quelle, ziel);
Behaelter hat einen Konstruktor, welcher einen Füllstand als Parameter erwartet. Also sollte in "quelle" etwas drin sein. Ziel könnte leer (0) sein. Pumpe benötigt dann die Behälter als Parameter. Der Konstruktor kann also genauso mit Parametern aufgerufen werden, wie bspw. die Methode 'umpumpen(60)' - wie es schon im Code steht.
deklarieren:
Java:
Behaelter quelle;
initialisieren - mit Konstruktor (new):
Java:
quelle = new Behaelter(100);
Die Parameter 0 und 100 habe ich nur beispielhaft gewählt. Es macht ja logisch keinen Sinn, wenn der Füllstand vom Ziel > 40 oder der Quelle < 60 wären und dann
Java:
pumpe1.Umpumpen(60);
aufgerufen wird. Der Behandlung solcher Probleme möchte ich aber nicht vorgreifen.