Exercice Java corrigé transformer un programme donné en un programme orienté objet – Banques

class Banque2 {
    public static void main(String[] args) {
        // Variables locales pour les taux d'intérêts (afin d'éviter de
        // répéter les mêmes chiffres pour chaque client):
        double taux1 = 0.01;
        double taux2 = 0.02;

        // Construction des deux clients:
        Client c1 = new Client("Pedro", "Genève", taux1, 1000.0, taux2, 2000.0);
        Client c2 = new Client("Alexandra", "Lausanne", taux1, 3000.0, taux2, 4000.0);

        System.out.println("Données avant le bouclement des comptes:");
        c1.afficher();
        c2.afficher();

        // Bouclement des comptes des deux clients:
        c1.boucler();
        c2.boucler();

        System.out.println("Données après le bouclement des comptes:");
        c1.afficher();
        c2.afficher();
    }
}

class Client {

    private String nom;
    private String ville;
    private Compte cpt1, cpt2;

    public Client(String nom, String ville, double taux1, double solde1,
           double taux2, double solde2) {
        this.nom = nom;
        this.ville = ville;
        // Construction d'un compte privé:
        cpt1 = new Compte(taux1, solde1);
        // Construction d'un compte d'épargne:
        cpt2 = new Compte(taux2, solde2);
    }

    public void afficher() {
        // Cette méthode affiche les données du client
        System.out.println("   Client " + nom + " de " + ville);
        System.out.println("      Compte privé:     " +
                cpt1.getSolde() + " francs");
        System.out.println("      Compte d'épargne: " +
                cpt2.getSolde() + " francs");
    }

    public void boucler() {
        // Cette méthode boucle les deux comptes du client
        cpt1.boucler();
        cpt2.boucler();
    }
}

class Compte {

    private double taux;
    private double solde;

    public Compte(double taux, double solde) {
        this.taux = taux;
        this.solde = solde;
    }

    public double getSolde() {
        return solde;
    }

    public void boucler() {
        // Cette méthode ajoute les intérêts au solde
        double interets = taux * solde;
        solde = solde + interets;
    }
}

class Banque3 {

    public static void main(String[] args) {
        // ... comme avant

        // Construction des deux clients, notez l'argument booléen:
        Client c1 = new Client("Pedro", "Genève", taux1, 1000.0, taux2, 2000.0, true);           // Nouveau
        Client c2 = new Client("Alexandra", "Lausanne", taux1, 3000.0, taux2, 4000.0, false);    // Nouveau

        // ... comme avant
    }
}

class Client {

    private String nom;
    private String ville;
    private Compte cpt1, cpt2;
    private boolean masculin;          // Nouvelle variable d'instance

    // Méthode constructeur, notez le paramètre booléen:
    public Client(String nom, String ville, double taux1, double solde1,
           double taux2, double solde2, boolean masculin) {  // Nouveau
        this.nom = nom;
        this.ville = ville;
        cpt1 = new Compte(taux1, solde1);
        cpt2 = new Compte(taux2, solde2);
        this.masculin = masculin;        // Nouveau
    }

    public void afficher() {
        if (masculin)                    // Nouvelle instruction if..else
            System.out.print("   Client ");
        else
            System.out.print("   Cliente ");
        System.out.println(nom + " de " + ville);
        System.out.println("      Compte privé:     " +
                cpt1.getSolde() + " francs");
        System.out.println("      Compte d'épargne: " +
                cpt2.getSolde() + " francs");
    }
    // ... comme avant
}

class Compte {
    // ... comme avant
}

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *