-
Notifications
You must be signed in to change notification settings - Fork 0
/
Compte.java
83 lines (81 loc) · 2.41 KB
/
Compte.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
class Compte{
//attributs
private Client titulaire;
private TypeCompte type;
private double solde;
private int numeroDeCompte;
/**
* getter
*/
public Client getTitulaire(){
return this.titulaire;
}
public TypeCompte getType(){
return this.type;
}
public double getSolde(){
return this.solde;
}
public int getNumeroDeCompte(){
return this.numeroDeCompte;
}
/**
* constructeur général : crée un compte de type et de titulaire connus
* le compte est muni d'un numéro qui lui est réservé (égal au nombre
* de comptes déjà créés par la banque),
* et son solde initial est nul
*
* @param tc type de compte désiré (si null, alors simple compte chèque)
* @param cl client titulaire du compte (si null, alors titulaire est nul, type de compte est nul, solde initial est nul et numéro de compte est -1)
*/
public Compte(TypeCompte tc,Client cl){
//on incrémente le nombre total de comptes créés
TypeCompte.inccodeInterne();
this.titulaire=cl;
this.solde=0;
if(cl!=null){
if (cl.nb_comptes<Client.NB_MAX_COMPTES){
this.numeroDeCompte=TypeCompte.getcodeInterne();
}
if (tc==null)
this.type=TypeCompte.CC;
else
this.type=tc;
this.type.inccompteur();
}else{
this.type=null;
this.numeroDeCompte=-1;
}
}
/**
* methode de depot d’argent sur le compte (jusqu’au plafond eventuel)
* @param somme quantite d’argent a deposer sur le compte
* @return quantite d’argent eventuellement non deposee sur le compte (a rendre
* au client)
*/
public double depot(double somme){
if (this.solde+somme<=this.type.plafondDeDepot()){
this.solde+=somme;
return 0;
}else{
double ancienSolde=this.solde;
this.solde=this.type.plafondDeDepot();
return somme-this.type.plafondDeDepot()-ancienSolde;
}
}
/**
* methode de retrait d’argent depuis le compte (decouvert interdit)
* @param somme quantite d’argent a retirer du compte
* @return quantite d’argent effectivement retiree du compte et donnee au client
*/
public double retrait(double somme){
if (this.solde-somme>=0){
this.solde-=somme;
return somme;
}else{
double ancienSolde=this.solde;
this.solde=0;
return ancienSolde;
}
}
}