package finanse; public class Kwota { private int zlote; private int grosze;
public Kwota(int zlote, int grosze) { //sprawdzamy czy zlote i grosze są ujemne, jeśli są to wyrzuca wyjątek if (zlote < 0 || grosze < 0) { throw new IllegalArgumentException(); } else { //jeśli groszę wynoszą więcej niż 99 wtedy odpowiednio przelicza xD if (grosze > 99) { // dlatego int mamy - usuwa nam końcówkę i gdy grosze = 510 to po podzieleniu ile = 5 int ile = grosze / 100; grosze = grosze - 100 * ile; // grosze = 510-(100*5) da nam wynik 10gr zlote = zlote + 1 * ile; // zlote = zlote+(1*5) } this.zlote = zlote; //Przypisuje nam wartości do zmiennej globalnej this.grosze = grosze; } } public int getZlote() { return zlote; } //generujemy (PPM) - get pobiera nam dane public int getGrosze() { return grosze; } public Kwota() { } // pusty konstruktor, który tworzymy aby móc podłączyć bean'a // Tworzymy toString: Zamienia nam wartości liczbowe zmiennych (złotówki i grosze) na łańcuch znaków. @Override public String toString() { if (grosze > 9) { return zlote + "," + grosze; } else { return zlote + ",0" + grosze; } }
public Kwota dodaj(Kwota druga) { // Dodajemy. Jako parametr deklarujemy "drugą" kwotę. int zl = this.zlote + druga.zlote; int gr = this.grosze + druga.grosze; if (gr>99){ //gdy grosze większe od 99 wtedy: zl ++; zwiększamy ilość złotówek o 1. aod gr = gr - 100; groszy odejmujemy 100 // wtedy: gdy gr = 155 -> (nowe) gr = 155 - 100 i wtedy dostajemy dobre grosze } return new Kwota(zl, gr); }
public Kwota pomnoz(int liczba){ //Mnożenie. Mnożymy przez liczbę, dlatego ze w sklepie możemy sprzedać ilość jednego produktu. int gr = (this.grosze * liczba)%100; // gdy dzielimy z % dostajemy resztę czyli nasze grosze int zl = this.zlote * liczba + this.grosze * liczba / 100; // Przykład (int daje nam zaokrągloną wartość) zl = 4 * 5 + 65 * 5 / 100; return new Kwota(zl,gr); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false;
Kwota kwota = (Kwota) o;
if (zlote != kwota.zlote) return false; return grosze == kwota.grosze; } @Override public int hashCode() { int result = zlote; result = 31 * result + grosze; return result; }
|