Commit e1f3b8ed by Patryk Czarnik

wartosc() jako metoda w rekordzie

parent 0403ee54
package sprzedaz;
import java.math.BigDecimal;
import java.util.List;
import javax.swing.JOptionPane;
public class SumaJednegoMiasta_Imperatywnie2 {
// Użytkownik wprowadza nazwę miasta, a program oblicza sumę wartości transacji z tego miasta.
// W tej wersji stosujemy zwykłe pętle i ify,
// a sumę liczymy jako BigDecimal, wykorzystując pomocniczą metodę wartosc() zdefiniowaną w rekordzie.
public static void main(String[] args) {
String miasto = JOptionPane.showInputDialog("Podaj miasto:");
List<Transakcja> transakcje = ObslugaCsvTransakcji.wczytaj();
BigDecimal suma = BigDecimal.ZERO;
for(Transakcja tr : transakcje) {
if(tr.miasto().equalsIgnoreCase(miasto)) {
suma = suma.add(tr.wartosc());
}
}
JOptionPane.showMessageDialog(null, "Suma: " + suma);
}
}
......@@ -9,7 +9,7 @@ public class SumaWszystkichTransakcji {
BigDecimal suma = BigDecimal.ZERO;
for(Transakcja tr : transakcje) {
suma = suma.add(tr.cena().multiply(BigDecimal.valueOf(tr.sztuk())));
suma = suma.add(tr.wartosc());
}
System.out.println("Suma wszystkich transakcji: " + suma);
}
......
......@@ -20,4 +20,16 @@ public record Transakcja(
BigDecimal cena,
int sztuk) {
// W rekordach można definiować dodatkowe metody. Duży sens mają takie, które zwracają wyniki obliczone na podstawie wartości pól
public BigDecimal wartosc() {
return cena.multiply(BigDecimal.valueOf(sztuk));
}
public double wartoscDouble() {
return wartosc().doubleValue();
}
public int rok() {
return data.getYear();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment