[Java lista] switch

István Viczián viczian.istvan at gmail.com
2008. Nov. 8., Szo, 23:05:01 CET


Üdv,

két kis pontosítás. Sajnos több helyen hallottam már, hogy a "A
> fuggvenyeknel referencia szerinti parameteratadas van", vagy úgy fogalmazták meg, hogy primitív típusoknál érték szerinti, de objektumoknál referencia szerinti. Ez nem igaz, de a mondatod második fele igaz. A Java-ban kizárólag érték szerinti paraméterátadás van, ahogy írtad a referenciának is az értéke adódik át. Ha referencia szerinti átadás lenne, akkor a referenciára referáló referencia kerülne átadásra. :) Tudom, hogy mindenki érti, meg tudja, hogy működik, meg használja, de így nevezik.
Másik, hogy egy kis további olvasnivalót is adjunk a kérdezőnek, amit
akar, az a mellékhatás (angolul side effect) fogalomkörébe tartozik,
ami C, C++-ban még egyszerűbb, de talán ott is érdemes kerülni. A
Java-t a biztonság (programozói biztonság) jegyében úgy fejlesztették,
hogy ezek lehetőségét minimalizálják. Pl. az egységbe zárás,
encapsulation ezért is van.
Szóval jobb úgy szervezni a metódusait, hogy ilyen ne legyen,
lehetőleg a paramétereket ne módosítsd, hanem a visszatérési
értékekkel operálj, vagy az adott osztály attribútumaival.
Ez más program nyelvekben, pl. globális változók esetén különösen
kerülendő volt, hiszen nehéz volt kikeresni/észben tartani, hogy egy
változót hol módosítanak.

Viczi

2008/11/8 Legéndi Richárd Olivér <roante at freemail.hu>:
> Szia Zsolt!
>
> Hat igen, sajnos a nyelv keretei nemigen teszik lehetove az ilyesmit. A
> fuggvenyeknel referencia szerinti parameteratadas van, de a referenciak
> maguk is ertek szerint adodnak at valojaba (akarcsak a primitiv
> tipusoknal), igy hiaba is allitod at oket a fuggveny torzseben, az
> eredeti referenciaid erintetlenek maradnak.
>
> Eleg nehez lehet megszokni C/C++ utan, de nekem nem remlik, hogy egy
> ilyen szituaciot ne lehetett volna megkerulni.
>
> Ha nagyon muszaj, esetleg egy wrapper objektumba csomagolhatod a
> referenciaidat, mert azokat tetszolegesen allitgathatod, de ez elegge a
> fabol vaskarika esete.
>
> Ricsi
>
> UI: hat eleg zagyvara sikeredett a szoveg, sry, kicsit mar keso van, de
> remelem erteni fogjatok, mire gondoltam :-)
>
> Peter Verhas wrote:
>> Nem igy oldjuk meg a problemakat, es akkor nem kell ilyen swap "fuggveny".
>>
>> Peter
>> Verhás Péter
>> +36(30)9306805
>> peter at verhas.com
>>
>>
>> -----Original Message-----
>> From: Gádori Zsolt <takuan at freemail.hu>
>>
>> Date: Sat, 8 Nov 2008 20:11:39
>> To: javalist at javagrund.hu<javalist at javagrund.hu>
>> Subject: [Java lista] switch
>>
>>
>> Sziasztok!
>>
>> Az a nagyon lamer kérdésem támadt, hogy a klasszikus switch függvényt
>> hogy írjuk meg jávában, ha nincsenek pointerek. Arra gondolok ugye,
>> amelyik a függvény két paraméterét felcseréli egymás közt, "a" értéke
>> "b"-be vándorol, és viszont, és mindezt ugye pointereken keresztül a
>> hívó memóriaterületén végzi el.
>> Szóval értitek gondolom :-))
>>
>> Köszi:
>> Zs.
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>


További információk a(z) Javalist levelezőlistáról