next up previous contents
suivant: Classe locale monter: Classes précédent: Arguments du main   Table des matières

Classes emboîtées

On peut déclarer des classes à l'intérieur d'autres classes. Il existe trois constructions:




Exemples: Ici Permissions est une classe emboîtée statique. Le terme officiel est ``top-level nested class''. C'est un moyen de regrouper des classes. On pourra de l'extérieur accéder à la classe emboîtée à partir de la classe externe. Le mot clé static est obligatoire.



transparent
classe emboîtée


public class BankAccount {
    private long number;   //numero de compte
    private long balance;  //balance courante

    public static class Permissions{
        public boolean canDeposit,
            canWithdraw, canClose;
    }
    //...
}


On peut aussi avoir une classe membre d'une autre classe. Dans ce cas chaque instance de cette classe membre est associée avec une instance de la classe englobante.



transparent
BankAccount...


public class BankAccount {
    private long number;    //numero de compte
    private long balance;   //balance courante
    private Action lastAct; //dernier mouvement fait

    public class Action{
        private String act;
        private long amount;
        Action(String act,long amount){
            this.act = act;
            this.amount = amount;
        }
        public String toString(){
            return number + ":" + act + " " + amount;
        }
    }




transparent
BankAccount...


    public void deposit(long amount){
        balance += amount;
        lastAct = new Action("deposit",amount);
    }
    public void withdraw(long amount){
        balance -= amount;
        lastAct = new Action("withdraw",amount);
    }
//...
}



next up previous contents
suivant: Classe locale monter: Classes précédent: Arguments du main   Table des matières
Hugues Fauconnier 2002-01-11