Enseignante : Arij Abid
A.U.2024/2025
Filière : 2ème année BTS - Informatique de Gestion
Langage de programmation java
Correction Travaux Pratiques N°2 exercices 2 :
❖ Exercice 2 : Gestion d’un Compte Bancaire en Java
1. Création du projet Java :
• Cliquez avec le bouton file
• Sélectionnez New > Java Project .
• Donnez un nom au projet, par exemple TP2, puis cliquez sur Finish .
2. Création du package tp2 :
• Dans le dossier src du projet créé, cliquez avec le bouton droit , puis sélectionnez
New > Package .
• Nommez le package tp2 (les noms de package doivent être en minuscules selon
les conventions Java).
3. Création de la classe CompteBancaire :
• Cliquez avec le bouton droit sur le package tp2, puis sélectionnez New > Class .
• Nommez la classe CompteBancaire (les noms de classes commencent par une
majuscule selon les conventions Java).
• Assurez-vous que l'option "public static void main(String[] args)" n'est pas cochée
lors de la création de cette classe (elle sera ajoutée dans une autre classe, Main).
4. Création de la classe Main :
• Répétez l'étape précédente pour créer une nouvelle classe appelée Main dans le
même package tp2.
• Cette fois, cochez l'option "public static void main(String[] args)" pour inclure
une méthode principale.
1
Analogie
Imaginez que vous êtes banquier et vous devez créer une fiche informatique pour chaque
client. Cette fiche contient :
• le numéro de compte (unique),
• le nom du client,
• et combien d'argent il a.
En Java, cette "fiche" est notre classe CompteBancaire
À faire dans la classe :
Création de la classe CompteBancaire
package tp2;
public class CompteBancaire {
private String numeroCompte;
private String titulaire;
private double solde;
public CompteBancaire(String numeroCompte, String titulaire, double solde) {
super();
[Link] = numeroCompte;
[Link] = titulaire;
[Link] = solde;
}
// Méthode pour déposer de l'argent
public void deposer(double montant){
if (montant > 0) {
solde += montant;
[Link]("Dépôt de " + montant + " dt effectué.");
} else {
[Link]("Le montant doit être strictement positif.");
}
}
// Méthode pour retirer de l'argent
public void retirer(double montant) {
if (montant > 0 && montant <= solde) {
solde -= montant;
[Link]("Retrait de " + montant + " € effectué.");
} else {
[Link]("Montant invalide ou solde insuffisant.");
}
}
2
// Getter pour le solde
public double getSolde() {
return solde;
}
// Méthode toString()
@Override
public String toString() {
return "Numéro de compte : " + numeroCompte + ", Titulaire : " + titulaire + ",
Solde : " + solde + " €";
}
// Bonus : Méthode virement
public void virement(CompteBancaire destinataire, double montant) {
if (montant > 0 && montant <= [Link]) {
[Link] -= montant;
[Link](montant);
[Link]("Virement de " + montant + " € effectué vers le compte de " +
[Link]);
} else {
[Link]("Virement impossible : montant invalide ou solde insuffisant.");
}
}
}
Justification :
• private permet d’encapsuler les données → bonne pratique POO.
• Le constructeur initialise les valeurs de l’objet au moment de sa création.
• Les getters/setters permettent d'accéder/modifier les attributs en respectant
l'encapsulation.
• toString() est une méthode très utile pour afficher rapidement les infos d’un objet.
Classe Main:
Partie 1 (suite) : Classe Main pour tester
Partie 2 : Tester la classe avec un programme Main
Comme un banquier qui teste une nouvelle application de gestion des comptes, on va :
• créer un compte pour "Alice Dupont",
• déposer de l'argent,
• faire un retrait,
• essayer un retrait trop élevé (erreur attendue),
• afficher l’état du compte à chaque fois.
3
la class Main:
package tp2;
public class Main {
public static void main(String[] args) {
// Création d'un compte bancaire
CompteBancaire compteAlice = new CompteBancaire("FR7612345", "Alice Dupont",
1000);
// Affichage initial
[Link]([Link]());
// Opérations sur le compte
[Link](500);
[Link](200);
[Link](2000); // Tentative de retrait invalide
// Affichage final
[Link]("Solde final : " + [Link]() + " €");
// Bonus : Test de la méthode virement
CompteBancaire compteBob = new CompteBancaire("FR9876543", "Bob Martin",
500);
[Link]("\nAvant virement :");
[Link]([Link]());
[Link]([Link]());
[Link](compteBob, 300);
[Link]("\nAprès virement :");
[Link]([Link]());
[Link]([Link]()); }}
4
Résumé
• On utilise l’encapsulation (attributs private) pour protéger les données.
• On interagit via des méthodes pour s’assurer que les règles sont respectées.
• Chaque méthode représente une action concrète dans la vie réelle.
• Les erreurs sont gérées avec des messages (comme un avertissement d’un distributeur
automatique).