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?