Writing /home/infogasy/domains/wiki.infogasy.net/public_html/data/cache/3/3e319573090219b89ca59f76027ececa.xhtml failed

Andao hiresaka objet indray faha VII

Ireo tsara fantatra vitsivitsy

Amin�ity resaka andininy faha-7 ity ary aloha dia andao hojerena kely ireo tsara fantatra vitsivitsy alohan�ny hirosoana lavidavitra kokoa amin�ity tantaran�ny Objet ity, indrindra moa ny amin�ny Java izany.

Karazana Package:

Raha tsorina moa izany ny package dia ny fonosana tokony hitoeran�ireo kilasy noforoninao na avy amina API efa vita orina avy ivelany (na standard io na avy an-toeran-kafa �)

Misy karazany roa anefa ny mety ho fisehoan�ilay package voaresantsika tary aloha tary iny:

  1. Na izy mitoetra any anatin�ireo rafitra repertoire mazava tsara ao anatin�ny milina hihodinan�ilay JVM.
  2. Na izy mitoetra anatina rafitra repertoire ihany; saingy voatahiry anaty fichier iray na maro toa ireny fanangonana anaty fichier ZIP iray, fichier maromaro miparitaka anaty rafitra repertoire mifandrakotra.

Ity farany ity moa dia tena hevitra nety tokoa ny an�i Sun ny nandray azy, satria dia tena rafitra-na fichier ZIP (spec Pkware) tokoa izy io; ka mazana dia ny safidy tsy manao fanakelezana no ampiasaina (sans compression), raha toa tianao ny hanao import avy hatrany ireo kilasy ao anatiny toy ny amin�ilay rafitra repertoire voalohany. Marihina moa fa ampitondrana ny famaranana .jar ireo fonosana karazana faharoa ireo ary misy fitaovana manorina ireo fonosana .jar ireo ao anaty JSE an�i SUN, manana anarana komandy hoe jar.

Koa raha ampiharintsika ary hoe, andao hatao anaty fonosana .jar ilay kilasy naorintsika voalohany ka nasiana ilay soratra hoe package resakaObjet; tao amboalohany: izany hoe hapetraka anaty repertoire resakaObjet ilay kilasy voaforona.

Dia mipetraha ary ao anatin�ilay toerana misy ilay proagrama fototra ZavatraAzoKajiana.java izany isika, no mandefa ny komandy manaraka ity ohatra, eo amin�ny andalana fandefasana komandy (ligne de commande):

jar cvf0 resakaObjet.jar resakaObjet

Dia ho voaforona ao ao amin�ilay toerana misy antsika avy hatrany ny fichier resakaObjet.jar itoeran�ireo kilasintsika rehetra ao anaty repertoire resakaObjet sy ny ao ambaniny rehetra �

Fanazavana:

Marihina aloha fa efa vita mialoha izany ny compilation natao an�ilay programa fototra (source java).

Ilay safidy 0 eto dia hanamarihina fa tsy atao ny fanakelezana ireo kilasy hampidirina anaty fonosana.

Ny hafa moa dia safidy fanamarihina toa ny amin�ny ZIP ihany (c : famoronana, v :mivoaka amin�ny ecran, f : marihina ny anaran�ny fonosana .jar, sns �)

Fifehezana ny kiana mitranga na laza diso amin�ny Java (Exception)

Amin�ny ankapobeny moa dia anisan�ny zava-dehibe sy tsy azo atao ambanin-javatra ny fifehezana tsara ny kiana mety mitranga rehefa mihodina ny praograma iray. Koa andao ary handramana hojerentsika tsotsotra ny amin�izy io, amin�ny Java:

Koa satria ary araka ny efa fantatsika dia Objet daholo ny rehetra kirakiraina amin�ny tontolo Java, dia tafiditra ao anatin�izany koa ary ny Exception na Kiana ao amin�ny Java. Vokany: misy ary ny kilasy iray antsoina hoe Exception ao amin�ny API�ny Sun. Misy ilay iray antsoina hoe Error moa, saingy tsy hiresaka an�io isika, noho izy io tsy dia mipoitra amin�ny praograma aorina mahazatra.

Koa raha misy ary andalana soratra praograma vitsivitsy andrasantsika fa mety hiteraka kiana ny fihodinany dia toa izao no tokony hifehezana izany:

public class ZavatraAzoKajiana
{
    ...........
    public Object kajyAdisanina(double sandaHafa)  // fomba fanao raha reel no atao adisanina
        {
        try
        {
            Double d = (Double)getSanda();
            return new Double(d.doubleValue()+sandaHafa) ;
        }
        catch (Exception e)
        {
            ........... // ireo tokony hatao raha mitranga ny kiana
        }
        finally
        {
            ........... // ireo hatao ihany na misy na tsy misy ny kiana (eto moa raha tsy misy ny 
            ........... // kiana  dia tsy handalo eto, satria misy return iry ambony iry e�)
        }
    }
    ...........
}

Fanazavana:

Ny mety hitrangan�ny kiana moa eto dia hoe: ohatra ka soratra ary ilay Objet miantso io hetsika kajyAdisanina(double sandaHafa) io, nefa ilay parametre double vokany tsy hahomby avy hatrany ilay downcasting miasa amin�ny hoe: (Double)getSanda() fa hamoaka kiana : ClassCastException izy izay raha tsy diso aho!

Raha mitranga izany izay toe-zavatra izay, dia azontsika atao ny mifehy ny fihodinan�ny praogramantsika amin�ny fametrahana ny tokony hatao ao anatin�ilay andalan-tsoratra apetraka anatin�ilay :

catch (Exception e)
{
   ...........
}

na koa ao anatin�ilay :

finally
{
   ...........
}

izay tsy maintsy hatao ihany na misy ny kiana na tsy misy (raha asiana io farany io an !)

Fanamarihina lehibe :

Eto moa dia hita fa atao faobe ilay fifehezana ireo kiana mitranga, raha mampiasa avy hatrany ianao ny kilasy Exception hisamborana ilay tranga miseho, fa tsy voatsinjara hoe avy amin�inona no nahatonga ilay kiana. Dia izay no ampiasana ny lalanan�ny fandovana mba hitsinjarana ireo kiana mety hitranga rehetra (raffinement du traitement des exceptions).

Koa andao ary hamorona kilasy antsoina hoe ResakaObjetException isika, ka izy io dia mpandova ilay kilasy Exception mahazatra

public class ResakaObjetException extends Exception
{
  Object objet;
  public ResakaObjetException(Object obj)
  {
    objet = obj ;
  }
  
  public String toString()
  {
    return objet.getClass().toString();
  }
}

Dia asiantsika izao ireo hetsika kajyAdisanina() ao anaty kilasy ZavatraAzoKajiana

package resakaObjet;
 
public class ZavatraAzoKajiana
{
            private Object sanda;
 
            public ZavatraAzoKajiana(Object sandaHafa)
            {
                        sanda = sandaHafa;
            }
 
            public Object getSanda()
            {
                        return sanda;
            }
 
            public void setSanda(Object sandaHafa)
            {
                        sanda = sandaHafa;
            }
 
            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) ;
            }
 
            public Object kajyAdisanina(String sandaHafa) throws ResakaObjetException
            {
                        if(getSanda().getClass() != String.class) 
                              throw new ResakaObjetException(getSanda());
                        String s = (String)getSanda();
                        return s.concat(sandaHafa);
            }
 
            static public void main(String arg[[]]) {
                        ZavatraAzoKajiana oper = new ZavatraAzoKajiana("Infogasy ");
                        double d = 48.7;
                        try {
                                   System.out.println("Resultat : "+ oper1.kajyAdisanina(d));
                        }
                        catch (ResakaObjetException e)
                        {
                                   System.out.println("Tsy mitovy karazana : "+e.toString()+ � sy �+d);
                        }
            }
}

Fanazavana:

Afaka mihodina avy hatrany io praograma io satria misy ilay hetsika main(�) izy; ary hitantsika fa mitranga ilay kiana nandrasantsika satria ilay Objet oper dia karazana soratra, nefa ilay argument nampidirintsika amin�ilay hetsika kajyAdisanina(�) dia double.

Ka noho izany ary dia tsy hisy Resultat hivoaka eo fa kosa message : �Tsy mitovy karazana :� miampy ilay anaran�ilay kilasy niforonan�ilay Objet-ntsika sy ilay argument tsy izy nampidirina tamin�ilay hetsika :

public String toString()
{
return objet.getClass().toString();
}

sy

catch (ResakaObjetException e)
{
    System.out.println("Tsy mitovy karazana : "+e.toString()+ � sy �+d);
}

Ao anatin�ilay hetsika roa kosa dia hitantsika fa misy andalan-tsoratra hoe:

if(getSanda().getClass() != Double.class)
         throw new ResakaObjetException(getSanda());

�Raha mitranga ny seho fa tsy karazana Double ilay Objet averin�ny getSanda() dia asaivo mamorona kiana ResakaObjetException(�) ny praograma �

sy

if(getSanda().getClass() != String.class)
     throw new ResakaObjetException(getSanda());

“Raha mitranga ny seho fa tsy karazana String ilay Objet averin�ny getSanda() dia asaivo mamorona kiana ResakaObjetException(�) ny praograma “

De izay indray ary aloha ny amin�iny, fa dia mandram-panoratra indray e !

(Mbola hitohy an)

 

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