Zdefiniować klasę Zbiornik, której obiekty będą stanowić zbiorniki wody. Każdy zbiornik ma numer, zadaną pojemność oraz aktualny stan wody (który może być mniejszy od pojemności, gdy zbiornik nie jest pełen). Inicjalnie stan wody w zbiorniku równy jest \(\displaystyle{ 0}\).
W klasie zdefiniować metody
dolej(double woda)
i odlej(double woda)
pozwalające zmieniać stan wody poprzez dolewanie i odlewanie.Numery są nadawane zbiornikom automatycznie - pierwszy utworzony w programie zbiornik uzyskuje numer \(\displaystyle{ 1}\), drugi - numer \(\displaystyle{ 2}\) itd.
Zapewnić, aby następujący fragment programu (umieszczony w metodzie
main()
):Kod: Zaznacz cały
Zbiornik z1 = new Zbiornik(200);
System.out.println(z1);
z1.dolej(100);
System.out.println(z1);
z1.odlej(50);
System.out.println(z1);
Zbiornik z2 = new Zbiornik(1000);
z2.dolej(500);
System.out.println(z2);
Kod: Zaznacz cały
Zbiornik 1, pojemność 200.0, stan wody 0.0
Zbiornik 1, pojemność 200.0, stan wody 100.0
Zbiornik 1, pojemność 200.0, stan wody 50.0
Zbiornik 2, pojemność 1000.0, stan wody 500.0
W tym kontekście potrzebna będzie instrukcja
if
, która ma postać:if (warunek) instrukcja_do_wykonania.
Np.
Kod: Zaznacz cały
int a = 1;
int b = 2;
if (b > a) b--;
System.out.println(b); // wyprowadzi wartość 1
Kod: Zaznacz cały
class Main{
public static void main(String[] args) {
Zbiornik z1 = new Zbiornik(200,0);
System.out.println(z1);
z1.dolej(100);
System.out.println(z1);
z1.odlej(50);
System.out.println(z1);
Zbiornik z2 = new Zbiornik(1000,0);
z2.dolej(500);
System.out.println(z2);
}
}
class Zbiornik {
private double pojemnosc=0;
private double stanWody=0;
private static int liczba=0;
private int number=0;
public Zbiornik() {
number=++liczba;
}
public Zbiornik(double y, double x) {
pojemnosc = y;
stanWody = x;
number=++liczba;
}
public Zbiornik(double x) {
this(x,x);
}
public Zbiornik(Zbiornik p) {
pojemnosc=p.pojemnosc;
stanWody=p.stanWody;
number=++liczba;
}
public void dolej(double woda) {
stanWody+=woda;
if (stanWody>pojemnosc) {stanWody=pojemnosc;}
}
public void odlej(double woda) {
stanWody-=woda;
if (stanWody<0) {stanWody=0;}
}
public String toString() {
return "Zbiornik nr "+number+", pojemnosc "+pojemnosc+", stan wody "+stanWody;
}
public void show() {
System.out.println(toString());
}
}
Kod: Zaznacz cały
Zbiornik z1 = new Zbiornik(200,0)
Zbiornik z2 = new Zbiornik(1000,0)