Une classe pour modéliser une banque

           

Il s'agit de créer une classe pour modéliser une banque. Une banque contient ici un ensemble de comptes en banque ; les comptes en banque sont modélisés par la classe Compte définie précédemment. La banque attribue à chaque nouveau compte un numéro ; elle garde en mémoire, grâce à l'attribut dernierNumero, le dernier numéro attribué et attribue, à l'ouverture de compte suivant, le numéro suivant.
La classe banque est placée dans le paquetage banque, comme la classe Compte.
La classe Banque possède l'attribut listeComptes qui doit contenir la liste des comptes. Cet attribut est de type ArrayList ; il s'agit de la classe java.util.ArrayList, située donc dans le paquetage java.util de l'API. Cette classe sert à gérer des listes d'objets ; pour pouvoir servir à différents types d'objets, cette classe est générique. La généricité est un sujet important que vous pourrez étudier un peu plus tard. Il suffit d'observer ici comment on déclare une liste destinée à des objets de type Compte :
    ArrayList<Compte> listeComptes;
et comment on instancie cette classe de façon à construire une liste au départ vide :
    listeComptes = new ArrayList<Compte>();.

Cliquez sur les différents liens pour en savoir plus, et en particulier sur celui concernant la boucle for en regardant dans ce lien ce qui concerne le second type de boucle for. .

package banque;

import java.util.ArrayList;

public class Banque {
private int dernierNumero; // pour numeroter les comptes
private ArrayList listeComptes = new ArrayList();

public int ajouterCompte(String nom, int montant) {
dernierNumero++;
Compte nouveauCompte = new Compte(nom, dernierNumero, montant);
listeComptes.add(nouveauCompte);
return dernierNumero;
}

public void lister() {
for (Compte compte : listeComptes)
System.out.println(compte);
System.out.println();
}
/* Cherche dans listeCompte s'il existe un compte
dont le numero est le numero indique en parametre a la methode.
Retourne ce compte s'il en existe un,
retourne null sinon.
*/
public Compte chercherCompte(int numero) {
for (Compte compte : listeComptes)
if (compte.getNumero() == numero) return compte;
return null;
}

public void modifierCompte(int numero, int somme) {
Compte compte = this.chercherCompte(numero);
if (compte == null) return;
compte.modifier(somme);
}
}
En exercice, on peut ajouter à la classe Banque une méthode supprimerCompte qui supprime un compte de numéro donné. On n'essayera pas de garder le numéro devenu inutile pour un compte ultérieur. La méthode supprimerCompte doit retourner une valeur booléenne ; si la suppression est faite, la méthode retourne la valeur true, s'il n'existe aucun compte correspondant au numéro indiqué, la méthode retourne la valeur false.
Indication : La méthode remove de la classe ArrayList prend en paramètre un objet et supprime cet objet de la liste dans le cas où il y figure.

Le fichier Banque.java avec la méthode supprimerCompte.

Vous pouvez faire les exercices suivants :


L'instruction
    listeComptes.add(nouveauCompte);
utilise la méthode add de la classe ArrayList, qui ajoute le compte nouveauCompte à la fin de la liste

L'instruction :
    System.out.println(compte);
est plus subtile qu'il n'y parait, des explications viendron utlérieurement. Sachez pour l'instant que cette instruction est traduite à l'exécution (si compte ne vaut pas null) en :
    System.out.println(compte.toString());
et fait donc appel à la méthode toString définie dans la classe Compte.

L'instruction
    System.out.println();
demande un passage à la ligne dans la sortie du programme. 

© Charon Irène Paris 2012