Object-oriented programming - Laboratory 3


Schedule Next
Temat: IntelliJ - Java 3

IntelliJ

We will use IntelliJ on create Java program.

Third Java program

Relations
Inheritance
Composition
Aggregation
Asociation

Final code from classes

package com.company;
import java.util.Scanner;

public class Main {

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

        Student s = new Student("Jan", "Kowalski");
//        s.setImie("Jan");
//        s.setNazwisko("Kowalski");
        s.przedstawSie();

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

        System.out.println("Podaj imię");
        String i = in.nextLine();
        System.out.println("Podaj nazwisko");
        String n = in.nextLine();
        Student s2 = new Student(i,n);
        s2.przedstawSie();

//        System.out.println(s2.getLiczbaStudentow());
//
        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 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 = 0;
    //Aggregation
    private Wykladowca promotor;

    public Student(String imie, String nazwisko)
    {
        super(imie,nazwisko);
        liczbaStudentow++;
    }

    public static int getLiczbaStudentow() {
        return liczbaStudentow;
    }

    public void setPromotor(Wykladowca promotor) {
        this.promotor = promotor;
    }
}
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 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 class Czlowiek
{
    private String imie;
    private String nazwisko;

    public Czlowiek(String imie, String nazwisko)
    {
        this.imie = imie;
        this.nazwisko = nazwisko;
    }

    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 void przedstawSie()
    {
        System.out.println("Nazywam się "+this.imie+" "+this.nazwisko);
    }

}