Commit 47af85a1 by Patryk Czarnik

Klasy z enkapsulacją - początek

parent b70cca35
......@@ -27,4 +27,5 @@ public class Konto {
void wyplata(int kwota) {
saldo -= kwota;
}
}
......@@ -13,5 +13,13 @@ public class KontoPrzyklad {
System.out.println(konto);
konto.wyplata(700);
System.out.println(konto);
// dostępy bezpośrednio do pola w obiekcie - chcemy tego uniknąć dzięki "enkapsujalcji"
konto.saldo -= 1000;
System.out.println(konto);
konto.saldo = 555_555;
System.out.println(konto);
}
}
package p06_enkapsulacja;
import java.time.LocalDate;
import java.time.Period;
public class Osoba {
public static final int WIEK_PELNOLETNIOSCI = 18;
private String imie, nazwisko;
private LocalDate dataUrodzenia;
public Osoba(String imie, String nazwisko, LocalDate dataUrodzenia) {
this.imie = imie;
this.nazwisko = nazwisko;
this.dataUrodzenia = dataUrodzenia;
}
public Osoba(String imie, String nazwisko, String dataUrodzenia) {
this(imie, nazwisko, LocalDate.parse(dataUrodzenia));
}
public String getImie() {
return imie;
}
public void setImie(String imie) {
this.imie = imie;
}
public String getNazwisko() {
return nazwisko;
}
public void setNazwisko(String nazwisko) {
this.nazwisko = nazwisko;
}
public LocalDate getDataUrodzenia() {
return dataUrodzenia;
}
public void setDataUrodzenia(LocalDate dataUrodzenia) {
this.dataUrodzenia = dataUrodzenia;
}
@Override
public String toString() {
return imie + " " + nazwisko + " ur." + dataUrodzenia;
}
public int getWiek() {
Period czasZycia = Period.between(dataUrodzenia, LocalDate.now());
return czasZycia.getYears();
}
public final boolean pelnoletnia() {
return getWiek() >= WIEK_PELNOLETNIOSCI;
}
}
package p06_enkapsulacja;
import java.time.LocalDate;
public class Przyklad {
public static void main(String[] args) {
Osoba ala = new Osoba("Ala", "Kowalska", LocalDate.of(1990, 10, 1));
System.out.println(ala);
System.out.println(ala.getImie() + " ma " + ala.getWiek() + " lat.");
Osoba ola = new Osoba("Ola", "Malinowska", "2010-09-30");
System.out.println(ala);
System.out.println(ala.getImie() + " ma " + ala.getWiek() + " lat.");
System.out.println(ola);
System.out.println(ola.getImie() + " ma " + ola.getWiek() + " lat.");
System.out.println();
}
}
package p06_enkapsulacja;
import java.time.LocalDate;
public class Student extends Osoba {
private String kierunek;
private int rok;
public Student(String imie, String nazwisko, LocalDate dataUrodzenia, String kierunek, int rok) {
super(imie, nazwisko, dataUrodzenia);
this.kierunek = kierunek;
this.rok = rok;
}
// Jeśli chciałbym konstruktor z datą jako String, to mogę to zrobić na dwa sposoby (albo super, albo this):
public Student(String imie, String nazwisko, String dataUrodzenia, String kierunek, int rok) {
super(imie, nazwisko, dataUrodzenia);
this.kierunek = kierunek;
this.rok = rok;
}
// public Student(String imie, String nazwisko, String dataUrodzenia, String kierunek, int rok) {
// this(imie, nazwisko, LocalDate.parse(dataUrodzenia), kierunek, rok);
// }
public String getKierunek() {
return kierunek;
}
public void setKierunek(String kierunek) {
this.kierunek = kierunek;
}
public int getRok() {
return rok;
}
public void setRok(int rok) {
this.rok = rok;
}
@Override
public String toString() {
return super.toString() + ", student " + rok + " roku kierunku " + kierunek;
}
}
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