Commit 2bda7f6c by Patryk Czarnik

Pierwsze programy w stylu obiektowym

parent a6b101c2
package hello;
public class Hello {
public static void main(String[] args) {
System.out.println("oj");
}
}
package sprzedaz.obiektowo;
import java.util.List;
public class A1_WypiszWszystko {
public static void main(String[] args) {
List<Transakcja> lista = ObslugaCSV.wczytaj("sprzedaz.csv");
System.out.println("Wczytano " + lista.size() + " rekordów");
for(Transakcja transakcja : lista) {
System.out.println(transakcja);
}
}
}
package sprzedaz.obiektowo;
import java.io.File;
import java.io.FileNotFoundException;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
// To jest przykład "klasy narzędziowej" / "utility class".
// Klasa zawiera różne operacje, jest takim zestawem metod.
public class ObslugaCSV {
private ObslugaCSV() {
// nie należy tworzyć obiektów tej klasy
}
// Gdy w klasie jest kilka metod o tej samej nazwie, ale różniących się listą parametrów
// to jest to "przeciążanie" - overloading.
public static List<Transakcja> wczytaj(String sciezka) {
return wczytaj(new File(sciezka));
}
public static List<Transakcja> wczytaj(File plik) {
List<Transakcja> lista = new ArrayList<>();
try(Scanner scanner = new Scanner(plik)) {
scanner.nextLine();
while(scanner.hasNextLine()) {
String linia = scanner.nextLine();
String[] t = linia.split(",");
Transakcja transakcja = new Transakcja(LocalDate.parse(t[0]), t[1], t[2], t[3], t[4],
new BigDecimal(t[5]), Integer.parseInt(t[6]));
lista.add(transakcja);
}
} catch(FileNotFoundException e) {
e.printStackTrace();
}
return lista;
}
}
package sprzedaz.obiektowo;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Objects;
public class Transakcja {
private LocalDate data;
private String miasto;
private String sklep;
private String kategoria;
private String towar;
private BigDecimal cena;
private int sztuk;
public Transakcja(LocalDate data, String miasto, String sklep, String kategoria, String towar, BigDecimal cena, int sztuk) {
this.data = data;
this.miasto = miasto;
this.sklep = sklep;
this.kategoria = kategoria;
this.towar = towar;
this.cena = cena;
this.sztuk = sztuk;
}
public LocalDate getData() {
return data;
}
public void setData(LocalDate data) {
this.data = data;
}
public String getMiasto() {
return miasto;
}
public void setMiasto(String miasto) {
this.miasto = miasto;
}
public String getSklep() {
return sklep;
}
public void setSklep(String sklep) {
this.sklep = sklep;
}
public String getKategoria() {
return kategoria;
}
public void setKategoria(String kategoria) {
this.kategoria = kategoria;
}
public String getTowar() {
return towar;
}
public void setTowar(String towar) {
this.towar = towar;
}
public BigDecimal getCena() {
return cena;
}
public void setCena(BigDecimal cena) {
this.cena = cena;
}
public int getSztuk() {
return sztuk;
}
public void setSztuk(int sztuk) {
this.sztuk = sztuk;
}
public BigDecimal getWartosc() {
// return this.getCena().multiply(BigDecimal.valueOf(this.getSztuk()));
return cena.multiply(BigDecimal.valueOf(sztuk));
}
public double getWartoscDouble() {
return this.getWartosc().doubleValue();
}
@Override
public String toString() {
return "Transakcja [data=" + data + ", miasto=" + miasto + ", sklep=" + sklep + ", kategoria=" + kategoria
+ ", towar=" + towar + ", cena=" + cena + ", sztuk=" + sztuk + "]";
}
@Override
public int hashCode() {
return Objects.hash(cena, data, kategoria, miasto, sklep, sztuk, towar);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Transakcja other = (Transakcja) obj;
return Objects.equals(cena, other.cena) && Objects.equals(data, other.data)
&& Objects.equals(kategoria, other.kategoria) && Objects.equals(miasto, other.miasto)
&& Objects.equals(sklep, other.sklep) && sztuk == other.sztuk && Objects.equals(towar, other.towar);
}
}
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