Dostęp do pola bez akcesora

0

Standardowo używam akcesora w ten sposób

    public String xyz()
    {
        return xyz;
    }

Ale kiedy użyłem w kodzie tej metody

    void pokazXyz()
    {
    System.out.println("xyz = " + xyz);
    } 

to nie musiałem już używać typowego dla mnie akcesora, wystarczyła metoda pokazXyz(). Jak to się dzieje, że ta metoda jest traktowana jako używany prze zemnie akcesor?

Poniżej cały kod obu klas:

public class Pies 
{
    private String imie;
    private int xyz;

    public Pies()
    {
        this(1, "pies");
    }

    public Pies(int x, String i)
    {
        this.xyz = x;
        this.imie = i;
    }

//  public String getImie()
//  {
//      return imie;
//  }
//  public void setImie(String i)
//  {
//      imie = i;
//  }

    public int getXyz()
    {
        return xyz;
    }
    public void setXyz(int x)
    {
        xyz = x;
    }

    void szczekaj()
    {
    System.out.println("hau");
    }
    void pokazXyz()
    {
    System.out.println("xyz = " + xyz);
    }
    public String toString()
    {
        return "tekst ";
    }
} 
public class PiesTest 
{

    public static void main(String[] args) 
    {
        Pies p = new Pies();

        p.szczekaj();
        System.out.println(p);
        p.pokazXyz();
        int a = p.getXyz();
        System.out.println(a);
    }

} 
2

W akcesorach nie ma żadnej magii. To po prostu metody, które zwracają wartość pola. Do pola możesz spokojnie dostać się bezpośrednio, bez użycia akcesora, jeżeli jesteś w zasięgu widoczności tego pola.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0