package gotowe.p17_widocznosc;

public class Klasa {
    private int prywatne = 1;
    int domyslne = 2;
    protected int chronione = 3;
    public int publiczne = 4;

    public void metoda() {
        System.out.println(this.prywatne);
        System.out.println(prywatne);
        System.out.println(domyslne);
        System.out.println(chronione);
        System.out.println(publiczne);
    }

    public void metoda2(Klasa inny) {
        System.out.println(inny.prywatne);
        System.out.println(inny.domyslne);
        System.out.println(inny.chronione);
        System.out.println(inny.publiczne);
        inny.prywatne = 101;
    }

    public static void main(String[] args) {
        // Tutaj nie ma dostępu, bo jesteśmy w kontekście statycznym - poziomy widoczności nie mają nic do rzeczy.
        //NK System.out.println(prywatne);
        //NK System.out.println(publiczne);

        Klasa obiekt = new Klasa();
        System.out.println(obiekt.prywatne);
        System.out.println(obiekt.domyslne);
        System.out.println(obiekt.chronione);
        System.out.println(obiekt.publiczne);

        obiekt.metoda();
        Klasa innyObiekt = new Klasa();
        innyObiekt.prywatne = 19;
        obiekt.metoda2(innyObiekt);
        System.out.println(innyObiekt.prywatne);
    }
}
