-
Notifications
You must be signed in to change notification settings - Fork 0
/
TypeCompte.java
137 lines (127 loc) · 4.74 KB
/
TypeCompte.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/**
* classe qui répertorie les types de comptes :
* CC : compte courant
* LA : Livret A
* LEP : Livret d'épargne Populaire
* LDD : Livret de Développement Durable
*
*/
class TypeCompte{
//caractéristiques réglementaires des différents livrets
//attributs déclarés publics car non modifiables
public static final double tauxLA =1.75;
public static final double tauxLDD =1.75;
public static final double tauxLEP =2.25;
public static final double plafondLA =15300;
public static final double plafondLDD =6000;
public static final double plafondLEP =7700;
public static final boolean accesLA =false;
public static final boolean accesLDD =false;
public static final boolean accesLEP =true;
public static final double ressourcesLA =Double.MAX_VALUE;
public static final double ressourcesLDD =Double.MAX_VALUE;
public static final double ressourcesLEP =757;
//compteur de comptes général
private static int codeInterne =-1;
// attributs
private int compteur;
private double taux;
private boolean plafondDepot;
private double montantPlafond;
private boolean accesCompte;
private double montantRessources;
public static final TypeCompte LEP = new TypeCompte(TypeCompte.tauxLEP,true,TypeCompte.plafondLEP,TypeCompte.accesLEP,TypeCompte.ressourcesLEP);
public static final TypeCompte LDD = new TypeCompte(TypeCompte.tauxLDD,true,TypeCompte.plafondLDD,TypeCompte.accesLDD,TypeCompte.ressourcesLDD);
public static final TypeCompte LA = new TypeCompte(TypeCompte.tauxLA,true,TypeCompte.plafondLA,TypeCompte.accesLA,TypeCompte.ressourcesLA);
public static final TypeCompte CC = new TypeCompte(0.0,false,Double.MAX_VALUE,false,Double.MAX_VALUE);
/**
*constructeurs des types de comptes
*/
public TypeCompte(double t,boolean p,double m,boolean a,double r){
this.compteur =0;
this.taux =t;
this.plafondDepot =p;
this.montantPlafond =m;
this.accesCompte =a;
this.montantRessources =r;
}
/**
* methode par laquelle un type de compte indique la somme
* maximale qui peut etre depose
* @return plafond de depot (Double.MAX_VALUE si "illimite")
*/
public double plafondDeDepot(){
if (this.plafondDepot)
return this.montantPlafond;
else
return Double.MAX_VALUE;
}
/**
* methode par laquelle un type de compte indique le plafond
* maximal de revenus (en fait d’impot sur le revenu)
* impose a l’ouverture du compte
* @return plafond de revenus (Double.MAX_VALUE si "illimite")
*/
public double plafondDeRevenus(){
if (this.accesCompte)
return this.montantRessources;
else
return Double.MAX_VALUE;
}
/**
* methode de classe donnant dans un tableau tous les types de comptes
* qu’il est possible d’ouvrir, etant donne un montant maximum a deposer
* @param montant_a_deposer montant qu’on souhaite deposer sur le compte
* (-1 si sans importance)
* @return tableau contenant tous les types de comptes qu’il est
* possible d’ouvrir
*/
public static TypeCompte[] tableauDesComptesPotentiels(double montant_a_deposer){
TypeCompte[] tableau = new TypeCompte[4];
tableau[0]=null; //quelque soit le montant à déposer, le compte courant est toujours éligible
if(LEP.plafondDeDepot()>=montant_a_deposer || montant_a_deposer==-1)
tableau[1]=LEP;
else
tableau[1]=null;
if(LDD.plafondDeDepot()>=montant_a_deposer || montant_a_deposer==-1)
tableau[2]=LDD;
else
tableau[2]=null;
if(LA.plafondDeDepot()>=montant_a_deposer || montant_a_deposer==-1)
tableau[3]=LA;
else
tableau[3]=null;
return tableau;
}
//méthodes utiles aux tests
//méthode qui permet de consulter le compteur
public int getcompteur(){
return this.compteur;
}
//méthode qui permet de consulter l'attribut taux
public double gettaux(){
return this.taux;
}
//méthode qui permet de consulter l'attribut accès compte
public boolean getaccesCompte(){
return this.accesCompte;
}
//méthode qui permet de consulter l'attribut plafondDepot
public boolean getplafondDepot(){
return this.plafondDepot;
}
//méthode qui permet d'incrémenter le compteur
public int inccompteur(){
this.compteur+=1;
return this.compteur;
}
//méthode qui permet de consulter le code interne des comptes
public static int getcodeInterne(){
return codeInterne;
}
//méthode qui permet d'incrémenter le code interne des comptes
public static int inccodeInterne(){
codeInterne+=1;
return codeInterne;
}
}