Szkolenia programowania we Wrocławiu
Kurs Java Podstawy - rozszerzony

JavaTraps 006 - odpowiedź

Pytanie

Przypomnienie kodu:

public class Prywatka {
	private int x = 0;

	public Prywatka(int x) {
		this.x = x;
	}

	public boolean equal(Prywatka p) {
		return this.x == p.x;
	}

	public static void main(String[] args) {
		Prywatka a = new Prywatka(1);
		Prywatka b = new Prywatka(1);

		System.out.print(a.equal(b)+" ");
		System.out.print(a.x == b.x);
	}
}

Przypomnijmy sobie najpierw jak działa modyfikator private w przypadku pól obiektu. Oznacza on, że dana składowa jest prywatna w klasie, a nie obiekcie, czyli jak najbardziej możemy się do niego odwoływać bezpośrednio w innym obiekcie tej samej klasy. W przypadku naszej metody equal() może jest to bardziej oczywiste, natomiast przy porównaniu bezpośrednim dwóch różnych obiektów na pewno większość z was już się zastanowiła.

Poprawna odpowiedź to c) Program się wykona i wyświetli dwa razy true

Zapamiętaj więc - w obrębie klasy możesz się odwoływać do pól prywatnych innej instancji tej samej klasy. Lepszym nawykiem będzie jednak używanie w każdym wypadku getterów i setterów, ponieważ w zdecydowanej większości przypadków chcieliśmy w ten sposób zablokować możliwość bezpośredniej manipulacji na danym polu.

Komentarze

Komentarze zamknięte. Zapraszamy do grupy na Facebooku
Kamil

Bardzo fajny dział, powinieneś go bardziej rozwijać. Jest to zdecydowany plus tej strony.
Przydałby się też dział poświęcony optymalizacji (z tematami typu StringBuffer i StringBuilder).
Fajnie by było też jakbyś dodał newsletter i wysyłał powiadomienia o nowych artykułach ;)
Pozdrowienia,
Kamil

Artur

Jestem nowicjuszem

wolał bym dowiedzieć się jak na własny serwer wstawić skrypt np. z obiektami gif. może napiszecie jakiś wzór pokoleji jak się to robi z przykkładową aplikacją np przesówanie prostokonta

ps. Swietna stronka

Marcinho

Świetny dział, bardzo pouczający :) Fajnie by było jakbyś go jeszcze trochę rozbudował.