Exercice 3 :
Client.java
package mes_classes;
public interface Client {
public void creerCompte();
}
ClientExterne.java
package mes_classes;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ClientExterne implements Client
{
// liste des comptes du client
private List<Compte> lesComptes;
// nom du client externe
private String nom;
//prénom du client externe
private String prenom;
// la liste des comptes ne peut être modifiée directement
public List<Compte> getLesComptes()
{
return lesComptes;
}
// accès en lecture au nom
public String getNom()
{
return nom;
}
// accès en lecture au prénom
public String getPrenom()
{
return prenom;
}
//constructeurs par défaut
public ClientExterne()
{
nom = "titi";
prenom = "toto";
lesComptes = new ArrayList<Compte>();
}
// constructeur avec initialisation des attributs de clientExterne avec les valeurs passées en paramètres
public ClientExterne(String nom, String prenom)
{
this.nom = nom;
this.prenom = prenom;
lesComptes = new ArrayList<Compte>();
}
// création d'un compte pour un ClientExterne
public void creerCompte()
{
Scanner saisie = new Scanner(System.in);
System.out.println("\n ===> CREATION DE COMPTE - pour client externe");
System.out.print("entrer le nom du titulaire : ");
String nom = saisie.next();
System.out.print("\nentrer le numéro du compte : ");
String num = saisie.next();
System.out.print("entrer le solde : ");
double solde = saisie.nextDouble();
lesComptes.add(new Compte(num, nom, solde));
}
// récupère la chaîne des caractéristiques d'un client externe
@Override
public String toString()
{
String chaine = null;
chaine = "\nComptes du client " + nom + " " + prenom + " : ";
for (Compte unCompte : lesComptes)
chaine += "\ncompte n° " + unCompte.getNumero() + "\t nom du titulaire : " + unCompte.getNomTitulaire() + " \t solde : " + unCompte.getSolde() + " euros";
return "\n" + chaine;
}
}
Compte.java
package mes_classes;
public class Compte
{
private String numero;
private String nomTitulaire;
private double solde;
/**
* @return the solde
*/
public double getSolde() {
return solde;
}
/**
* @param solde the solde to set
*/
public void setSolde(double solde) {
this.solde = solde;
}
/**
* @return the numero
*/
public String getNumero() {
return numero;
}
/**
* @return the nomTitulaire
*/
public String getNomTitulaire() {
return nomTitulaire;
}
public Compte()
{
numero = "0000";
nomTitulaire = "un titulaire inconnu";
solde = 0.0;
}
public Compte(String numero, String nomTitulaire, double solde)
{
this.numero = numero;
this.nomTitulaire = nomTitulaire;
this.solde = solde;
}
@Override
public String toString() {
return "Compte [numero=" + numero + ", nomTitulaire=" + nomTitulaire + ", solde=" + solde + "]";
}
}
ClientInterne.java
package mes_classes;
import java.util.List;
public class ClientInterne extends Salarie implements Client{
private double soldeCompte;
private List<Compte> lesComptes;
public double getSoldeCompte() {
return soldeCompte;
}
public ClientInterne() {
soldeCompte = 0;
}
public ClientInterne( int salairie,String nom, String prenom, double soldeCompte) {
super(salairie, nom,prenom);
this.soldeCompte = soldeCompte;
}
@Override
public String toString() {
return super.toString() + " ClientInterne [soldeCompte=" + soldeCompte + "]";
}
@Override
public void verserSalaire() {
soldeCompte += getSalarie();
System.out.println("Montant du salaire : " + getSalarie() +
" Le solde de compte : " + soldeCompte );
}
@Override
public void creerCompte() {
System.out.println("\nUn compte va être créé" + lesComptes.add(new Compte()));
}
}
Employe.java
package mes_classes;
public class Employe extends Salarie{
private String nomBanque;
public String getNomBanque() {
return nomBanque;
}
public Employe() {
nomBanque="";
}
public Employe(int salairie,String nom,String prenom,String nomBanque) {
super(salairie,nom,prenom);
this.nomBanque = nomBanque;
}
@Override
public String toString() {
return super.toString() + " Employe [nomBanque=" + nomBanque + "]";
}
@Override
public void verserSalaire() {
System.out.println("Un chèque vient d'être envoyer pour le salarié ");
}
}
main.java
package mes_classes;
public class main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Salarie s1 = new Employe(2727,"Charly","Jousse","MaBanque");
s1.toString();
s1.verserSalaire();
Salarie s2 = new ClientInterne(666,"Thomas","Lehugeur",66666);
s2.verserSalaire();
s2.toString();
Employe s3 = new Employe(88,"Corentin","David","mabanque");
s3.toString();
s3.verserSalaire();
ClientInterne s4 = new ClientInterne(64,"Antoine","Bouchet",10);
s4.creerCompte();
s4.verserSalaire();
s4.toString();
Client s5 = new ClientInterne(1,"Quentin","Pipelier",10);
s5.toString();
s5.creerCompte();
Client s6 = new ClientExterne("Gambi","oui");
s6.toString();
s6.creerCompte();
ClientExterne s7 = new ClientExterne("Groolot","David");
s6.toString();
s6.creerCompte();
}
}
Edited by Charly JOUSSE