Writing /home/infogasy/domains/wiki.infogasy.net/public_html/data/cache/2/278aafaccdb7bf8ba37ae4d86742d62c.xhtml failed

26/02/2005 Mpanoratra : Tambanivohitra.com

Andao hiresaka Objet faha VIII

Ireo tsara fantatra vitsivitsy (tohiny)

Ny rValue sy lValue

Fantatsika moa fa amin�ireo langage rehetra fanoratana praograma dia azo tsinjaraina toa izao ny zavatra tsara fantatra, amin�ny ankapobeny, raha vao hifehy azireo ny mpanoratra praograma :

1. ny karazana zavatra azo kirakiraina (type de donnee).
2. ny fampiarahana miasa ireo karazan-zavatra ireo mba hahazoana valy hafa vaovao (expressions).
3. Ireo soratra sy fomba fandrafetana ireo praograma rehefa manorina ianao na ireo instructions izany.

4. Manampy ireo moa dia ireo toetra sy fomba fiasa manokana araka ny modely ifotoran�ilay langage. Ohatra ny an�ny Java dia tsy maintsy miditra izany ireo toetra ankapobe tsy maintsy ananan’ny fomba fiantrehana mifototra amin�ny modely Objet ; izay fantatsika fa misy maha-samihafa azy amin�ireo izay mifototra amin�ny fombafomba fanao izay vao mifototra amin�ny zavatra kirakiraina. Ho an�ny Java ary, noho izy mifototra amin�ny modely Objet, dia toa lasa nitatra be izany ny mikasika ny �type de donnee� mahazatra. Io moa dia satria Objet daholo ny rehetra aminy (tsy maintsy ovaina manaraka izay koa izany ny fomba fijery).

Eto ary dia andao mba hojerentsika kely ireto zavatra roa antsoina hoe : rValue (right value) sy lValue (left value) ireto. Izireo moa dia saika itovizan�ny langage rehetra ny fiasany, nefa tsara ihany ny hanamarihana azy, satria ny fifehezana ny fiasan�izireo dia mety hampisy tombony kely amin�ny fomba fanoratana praograma iray, indrindra amin�ny lafiny hatsaran�ny fihodinan�ilay praograma.

  • Ny lValue moa mazana dia entina hanondroana izay ao anaty fitehirizana zavatra kirakiraina iray (karazana tranainy na Objet).
  • Ny rValue kosa dia mazana vokatra fiaraha-miasa zavatra maro, ampifandraisan�ny operateur mpikazy na mpampitaha. Mety ho hetsika mamerina vokatra ny sasany amin�ireo zavatra ampifandraisana ireo an.
Double d = (Double)getSanda() ;

Mazava izany amin’io fa izay voatahiry anaty d eto no lValue ; ary izay vokatra farany avoakan’ny (Double)getSanda() no rValue.

Ny fandehan’ny fanatanterahana ataon’ny milina rehefa sendra an’io izany dia izao: Ilay rValue no anombohany ny kajy, ka vitany tanteraka io ka mahazo vokatra, vao mitady ilay zavatra hasiany ny vokatra izy amin�izay zavatra hitany ao an-kavia ka afaka mitahiry ilay vokatra lValue.

Eto moa dia tsara ny manamarika, fa amin�ny Java dia mitovy amin’ny C ihany, ny amin�io lafiny fonction io (na methode e !) : misy ireo tsy mamerina vokatra antsoina hoe karazana void ary misy ireo mamerina vokatra karazana samihafa

Eto ary dia handray ohatra andalana praograma efa hitantsika ihany isika, dia andao hohalalinina ny fiasan�ireo zavatra roa ireo :

 
            public Object kajyAdisanina(double sandaHafa) throws ResakaObjetException
            {
                if(getSanda().getClass() != Double.class)
                     throw new ResakaObjetException(getSanda());
                Double d = (Double)getSanda();
                return new Double(d.doubleValue()+sandaHafa) ;
            }
  • Raha ilay :
Double d = (Double)getSanda();

Aloha dia efa nohazavaina tetsy ambony.

  • Ny amin’ity indray :
return new Double(d.doubleValue()+sandaHafa) ;

Azo heverina ary eto fa rValue ny expression new Double(d.doubleValue()+sandaHafa); ka eto dia voakajy ara-dalana io, ary manome vokatra karazana Objet Double, saingy tsy nampidirina anaty zavatra an-kavia intsony izy, fa tonga dia avoaka amin�ilay vokatra ny hetsika kajyAdisanina(�) . Tsy misy nanakana antsika hametraka hoe Double temp = new Double(d.doubleValue()+sandaHafa); izay vao mamerina io hoe return temp; ary mandeha tsara, saingy eo amin�ny hatsaran�ny fihodinan�ny praogramantsika no ho samy hafa ny hafainganany. Dia mitovitovy amin�izay koa no nanaovana avy hatrany ny kajy d.doubleValue() + sandaHafa tao anaty fonosana argument ny constructeur Double(�)

  • Ny amin’ilay hoe:
if(getSanda().getClass() != Double.class) throw new ResakaObjetException(getSanda());

kosa dia izao no azo ambara: Ilay new ResakaObjetException(�) aloha dia mitovy amin�ny testy ambony ihany ny aminy; fa ilay if(�) kosa no andao anie hosavaina kely:

Fampitahana expression roa no atao eto, amin�ny mpampitaha != (tsy mitovy ve ?).

Rehefa mampitaha moa ny milina mpikazy dia raisina ilay zavatra voalohany(ny ankavia) izay vao ataony ny fampitoviana rehefa mahazo ny vokatra ny zavatra faharoa (ankavanana) izy.

Eto ary dia tsy hoe tsy mety io efa nataontsika io, saingy misy tsininy kely hoy ny mpandrafitra ! � Raha dinihina ny fomba fiasan�ny rafitra mpikazy ao anaty milina, dia ilay zavatra ampitoviana raisina voalohany anie ka tokony tsy mila kajy be intsony, (miditra anaty registre: ho an�ny mpahalala !), fa ilay faharoa no tsara kokoa raha ilay mbola iandrasana vokatra kajy aloha (izay mbola mandalo lalana maro !)

Raha ny metimety kokoa izany dia toa izao no tsara :

if(Double.class != getSanda().getClass()) throw

Tsy dia mahazatra moa ny fanoratra toa io, nefa ny tsara tadidiana fotsiny angaha dia hoe: raiso toy ny lValue ilay voalohany ary rValue ilay faharoa dia milamina ny saina e ! fa tsy tena mitombina akory io kojy farany io an ! Toy ny expression iray ihany tsinona ny fampitahana ary manome vokatra marina na diso (true na false)

Farany amin�ity tsara fantatra ity moa dia tsara avahana koa ny fomba fanoratra roa ireto:

Ohatra:

1. new ResakaObjetException(getSanda());

Mandray vokatra na hetsika iray dia ampidirina ho argument na hetsika iray indray iny vokatra iny. Ny tsara marihina fotsiny dia tsy maintsy mifanaraka ny karazana avoakan�ilay hetsika anatiny, hitovy amin�ny karazana argument eken�ilay hetsika ivelany.

2.   ... getSanda().getClass()...

Eto indray dia tsy maintsy marihina tsara fotsiny hoe moa ve ilay karazana Objet mialohan�ireo .(point) mitovy amin�ny kilasy n�ilay Objet afaka mampiasa ilay hestika aorian�ny .(point). Eto ohatra dia fantatra fa ny hetsika getClass() dia ao anaty kilasy Object amin�ny API Sun. Ny hetsika getSanda() anefa fantatsika koa fa mamerina vokatra karazana Object. CQFD �dia mety izany io soratra io.

(Mbola hotohizana ihany�)

Lahatsoratra Java

 

andaohiresakaobjetfahavxxxxxiii.txt · Novaina farany:: 2008/09/11 12:43