next up previous contents
suivant: Constructeurs monter: super précédent: super   Table des matières

Un exemple

La classe Attr est faite pour être étendue. (Comme toutes les classes, elle est elle-même une extension de la classe Object).

Elle remplace la méthode toString(). La classe Attr permet d'associer un nom à un objet (quelconque).

La classe AttrCouleur est une extension de la classe précédente. Elle associe une couleur dans une certaine représentation (val de Attr) à un nom et à une ScreenColor (supposée être définie ailleurs).



transparent
Attr


class Attr{
    private String nom;
    private Object val = null;   
    public Attr(String nom){this.nom = nom;}
    public Attr(String nom, Object val){
        this.nom = nom;this.val = val;
    }
    public String getNom(){return nom;}
    public Object getVal(){return val;}
    public Object setVal(Object nVal){
        Object aVal = val; val = nVal; return aVal;
    }
    public String toString(){
        return nom + "='" +  val + "'";
    }
}


transparent
AttrCouleur


class AttrCouleur extends Attr{
    private ScreenColor maCouleur;
    public AttrCouleur(String nom, Object val){
        super(nom,val); decodeCouleur();
    }
    public AttrCouleur(String nom, ScreenColor val){
        super(nom, val.toString()); maCouleur = val;
    }
    public AttrCouleur(String nom){
        this(nom, "transparent");
    }
    public Object setVal(Object nVal){
        Object retval = super.setVal(nVal);
        decodeCouleur();
        return retval;
    }//...


transparent
AttrCouleur...


    public ScreenColor setVal(ScreenColor nVal){
        super.setVal(nVal.toString());
        ScreenColor aVal = maCouleur;
        maCouleur = nVal;
        return aVal;
    }
    public ScreenColor getColeur(){
        return maCouleur;
    }
    public void decodeCouleur(){
        if (getVal() == null)
            maCouleur = null;
        else
            maCouleur = new ScreenColor(getVal());
    }
}




Hugues Fauconnier 2002-01-11