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