funkcje get() i set() - jest sens?

0
public class elwis
{
	public class werbel
	{
		public int a=0;
	}
	
	public class perkusja
	{
		private werbel werbelek= new werbel();
		public perkusja()
		{
			werbelek.a=1;
		}
		
		public werbel get()
		{
			return werbelek;
		}
	}
	perkusja cala = new perkusja();
	public elwis()
	{
		werbel maly = cala.get();
		maly.a=2;
		System.out.println( "Wynik:" + cala.get().a );
	}
	public static void main( String []args )
	{
		new elwis();
	}
}

Wynik:2

(Napisałęm z C++, gdyz składnia najbliżej zbliżona do Javy.)
Tym programem ukazałem bardzo prostą ceche JAVY. Otóż wszystkie zmienne które są z klasy, a nie z typu wbudowanego są przekazywane przez referencje. Oznacza to, że jak wyśle jakąś zmienną komendą RETURN to wyśle obiekt, a nie jego wartość. Przez co moge go bezkarnie zmieniać. Pytam się więc, czy jest w takim przypadku sens robienia dodatkowych funkcji get i set, zamiast po prostu dać dany składnik publiczny?

0

Nalezy ukrywac jak najwiecej implementacji (ile tylko mozliwe i jest sens) , pisac kod latwy ( mozna gopotem latwo modyfikowac , wykorzystywac wielokrotnie )

Jezeli bedizesz tworzyl metodu do ustawiania i zracania wartosci , nawet tych banalnych , toulatwi ci to w przyszlosci modyfikowanie wnetrza klas bez potrzeby modyfikowania klas je wykorzystujacych

a poza tym jak to gdzies przeczytalem "Projektowanie obiektowe to bardziej sztuka niz nauka " .

wybor nalezy do ciebie , chcesz miec balagan albo go nie chcesz i to nie ma znaczenia czy to c++ czy java

projektowanie obiektowe ma swoje zasady ktorych lepiej sie trzymac

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