Object-oriented programming - Laboratory 4


Prev Next
Temat: IntelliJ - Java 4

IntelliJ

We will use IntelliJ on create Java program.

Third Java program

super
final
static, but some more than just static variable
Method overloading
Method overriding

Final code from classes

public class Main {

    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);

        System.out.println(Student.getLiczbaStudentow());

        Student s = new Student("Jan", "Kowalski", 123456);
        s.przedstawSie();
        s.podwojnePrzedstawienie();

        System.out.println(s.getLiczbaStudentow());

        Czlowiek c = new Czlowiek("Jan","Kos", 20);

        String inicjaly = new Obliczenia().inicjaly(s.getImie(), s.getNazwisko());
        System.out.println("Inicjały to :"+inicjaly);

        Wykladowca w = new Wykladowca("Krzysztof", "Dyczkowski");
        w.setWynagrodzenie(2000);
        Uczelnia u = new Uczelnia("UAM", w);
        u.setRektor(w);
        System.out.println("Nowe wynagrodzenie "+w.getWynagrodzenie());
        u.getRektor().przedstawSie();
    }
}
public final class Rektor extends Wykladowca{
    String tytul = "Jego Magnificencja Rektor ";

    public Rektor(String imie, String nazwisko)
    {
        super(imie,nazwisko);
        setWynagrodzenie(10000);
    }

    public Rektor(Wykladowca w)
    {
        super(w.getImie(), w.getNazwisko());
    }
}
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 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 setRektor(String imie , String nazwisko)
    {
        rektor = new Rektor(imie, nazwisko);
    }
}
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 int getWiek() {
        return wiek;
    }

    public void setWiek(int wiek) {
        this.wiek = wiek;
    }

    public void przedstawSie()
    {
        System.out.println("Nazywam się "+this.imie+" "+this.nazwisko);
    }
}