[Java lista] switch

Zsolt Gádori takuan at freemail.hu
2008. Nov. 9., V, 00:18:47 CET


Sziasztok!

Persze, megoldottam másként, csak az adott helyzetben nagyon kézreállt volna...
Meg ugye a megszokás. :-))
Nem baj, a lényeg, hogy meg lehet faragni a feladatot.
Egyébként globális változókkal kapcsolatban hihetetlen mennyiségű
cumit kellett már elszopogatnom. Úgy kerülöm őket, mintha harapnának
:-)
Most fejből nem tudom, de szerintem a c++ sem engedi meg, hogy az
egységbe zárás elvét pointerekkel megsértsed. (még sose próbáltam)
Szerintem fordítási hibára futna egy ilyen megoldás. Ha meg mégis
lehet, akkor annak úgy kell aki ilyen marhaságot csinál. Kíváló dolog
a pointer, csak figyelni kell mire használod, és nem lesz semmi baj.
Mint ahogy ez is jó, hogy nincsenek pointerek, mert könnyebb
aknamentes kódot írni.
Tény, hogy egy elbakkantott pointert megtalálni a legnehezebb dolgok
közé tartozik amivel valaha is találkoztam, és az is tény, hogy a
c(++) programok hibáinak túlnyomó többsége ebből adódik. Legalábbis
tapasztalatom szerint.

No köszönöm mindenkinek a segítséget!

Köszi:
Zs.

István Viczián <viczian.istvan at gmail.com> írta (2008. november 8. 23:05):
> Ü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
>>
> _______________________________________________
> 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