Object-oriented programming - Laboratory 5
Prev
Next
Temat: IntelliJ - Java 5
IntelliJ
We will use IntelliJ on create Java program.
Third Java program
Abstract class
Abstract method
Final code from classes
public class Czlowiek
{
private String imie;
private String nazwisko;
private int wiek;
public Czlowiek(String imie, String nazwisko)
{
this.imie = imie;
this.nazwisko = nazwisko;
}
public Czlowiek(String imie, String nazwisko, int wiek)
{
this.imie = imie;
this.nazwisko = nazwisko;
this.wiek = wiek;
}
public String getImie()
{
return imie;
}
public void setImie(String i)
{
System.out.println("Nie wolno zmieniać imienia w systemie");
}
public String getNazwisko() {
return nazwisko;
}
public void setNazwisko(String nazwisko) {
System.out.println("Nie wolno zmieniać nazwiska w systemie");
}
public String getImieNazwisko() {
return imie + " " + nazwisko;
}
public int getWiek() {
return wiek;
}
public void setWiek(int wiek) {
this.wiek = wiek;
}
public void przedstawSie()
{
System.out.println("Nazywam się "+this.imie+" "+this.nazwisko);
}
}
public class Student extends Czlowiek
{
private int nrIndeksu = 0;
private static int liczbaStudentow;
static
{
liczbaStudentow = 0;
}
//Aggregation
private Wykladowca promotor;
public Student(String imie, String nazwisko)
{
super(imie,nazwisko);
liczbaStudentow++;
}
public Student(String imie, String nazwisko, int nrIndeksu)
{
super(imie,nazwisko);
this.nrIndeksu = nrIndeksu;
liczbaStudentow++;
}
public boolean czyPelnoletni()
{
if (super.getWiek() >= 18) return true;
else return false;
}
public static int getLiczbaStudentow() {
return liczbaStudentow;
}
public void setPromotor(Wykladowca promotor) {
this.promotor = promotor;
}
public void przedstawSie() {
System.out.println("Nazywam się "+super.getImie()+" "+getNazwisko()+ " a mój numer indeksu to "+this.nrIndeksu);
}
public void podwojnePrzedstawienie()
{
this.przedstawSie();
super.przedstawSie();
}
}
public class Wykladowca extends Czlowiek {
private int wynagrodzenie;
//private Student studenNaDyzurze;
public Wykladowca(String imie, String nazwisko)
{
super(imie, nazwisko);
wynagrodzenie = 2000;
}
public int getWynagrodzenie() {
return wynagrodzenie;
}
public void setWynagrodzenie(int wynagrodzenie) {
this.wynagrodzenie = wynagrodzenie;
}
public void Dyzur(Student s)
{
s.przedstawSie();
//coś robią
//studenNaDyzurze = null;
}
}
public final class Rektor extends Wykladowca{
private String tytul = "Jego Magnificencja Rektor ";
private Kalendarz kalendarz;
public Rektor(String imie, String nazwisko)
{
super(imie,nazwisko);
setWynagrodzenie(10000);
kalendarz = new Kalendarz();
}
public Rektor(Wykladowca w)
{
super(w.getImie(), w.getNazwisko());
}
public boolean sprawdzDostepnosc(String kiedy)
{
// sprawdzam, czy jest wolny termin "kiedy" w "kalendarzu"
return kalendarz.sprawdzDostepnosc(kiedy);
}
public void umowZRektorem(Czlowiek x, String kiedy)
{
kalendarz.dodajDoKalendarza(x, kiedy);
}
}
public class Uczelnia {
private final String nazwa;
//Composition
private Rektor rektor;
public Uczelnia(String nazwa, Wykladowca w)
{
this.nazwa = nazwa;
rektor = new Rektor(w);
}
public Wykladowca getRektor() {
return rektor;
}
public void setRektor(Wykladowca w) {
rektor = new Rektor(w);
}
// public void setNazwa() {nazwa = "Inna nazwa";}
public void setRektor(String imie , String nazwisko)
{
rektor = new Rektor(imie, nazwisko);
}
}
public abstract class Biuro {
protected String nrPokoju;
protected Kalendarz kalendarz;
public Biuro()
{
kalendarz = new Kalendarz();
}
abstract boolean umowWizyte(Czlowiek x, String kiedy);
}
public class Dziekanat extends Biuro {
public Dziekanat()
{
nrPokoju = "A1-1";
}
@Override
boolean umowWizyte(Czlowiek x, String kiedy) {
if (kalendarz.sprawdzDostepnosc(kiedy))
{
kalendarz.dodajDoKalendarza(x,kiedy);
return true;
}
else return false;
}
}
public class sekretariatRektora extends Biuro {
private Rektor rektor;
public sekretariatRektora(Rektor rektor)
{
nrPokoju = "A1-28";
this.rektor = rektor;
}
@Override
boolean umowWizyte(Czlowiek x, String kiedy) {
if (kalendarz.sprawdzDostepnosc(kiedy) && rektor.sprawdzDostepnosc(kiedy))
{
kalendarz.dodajDoKalendarza(x,kiedy);
rektor.umowZRektorem(x, kiedy);
return true;
}
else return false;
}
}
public class Kalendarz {
private String terminarz;
public Kalendarz()
{
terminarz = "";
}
public void dodajDoKalendarza(Czlowiek x, String kiedy)
{
terminarz = terminarz + x.getImieNazwisko() + " " + kiedy;
}
private void wyczyscKalendarz()
{
terminarz = "";
}
public boolean sprawdzDostepnosc(String kiedy)
{
// sprawdzam, czy jest wolny termin "kiedy" w "kalendarzu"
return true;
}
}