Erreur dans programme java
Résolurapidegoyes Messages postés 143 Statut Membre -
Bonsoir à tous,
J'essaye la programmation java avec orienté objet.
Mon programme ne calcule pas le montant de ma TVA.
Il y a une erreur de résultat: Montant de la TVA :0.0
Vraiment je trouve pas l'erreur !
Voici mon code
Merci pour votre aide
très cordialement à +++
rapidegoyes
package calcultaxePOO;
public class Tvacalcul {
public static void main(String[] args) {
// TODO Auto-generated method stub
imprimer();
}
public static void imprimer() {
TVA resultat = new TVA(2000, 20, 0);
System.out.println("Montant de la TVA :" + resultat.sommeTva);
}
}//fin de la class Tvacalcul
class TVA {
double recettes ;//variables
double tva;
public double sommeTva;
//constructeur
public TVA (double recettes, double tva, double sommeTva) {
this.recettes = recettes;
this.tva = tva;
this.sommeTva = sommeTva;
}
public double calculTVA(double recettes, double tva, double sommeTva){
sommeTva = ((recettes * tva)/ 100);
return sommeTva;
}
}// fin de la class TVA
- Erreur dans programme java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
4 réponses
Bonjour
pour répondre "bêtement" à ta question, à aucun moment tu n'apppelles la méthode de calcul.
Mais, je t'invite à réfléchir à tes signatures et tes noms de variables.
En général, on appelle somme ou montant hors taxe le montant avant application de la TVA et somme pu montant TTC pour toutes taxes comprises le,montant avec la TVA.
Pour tes signatures, pourquoi mettre "sommeTVA" en paramètre du constructeur puisque le rôle de la classe est de calculer cette valeur?
Et calculTVA est une méthode de la classe, elle a donc accès aux champs privés, elle n'a donc pas besoin de paramètres. Il n'est pas non plus nécessaire qu'elle retourne une valeur (mais elle peut), par contre elle doit affecter le champs privés.
De plus des paramètres du même noms que les champs privés ça peut poser des problèmes si on oublie ensuite d'utiliser this quand c'est nécessaire
Bonsoir à tous,
Un grand merci de m'avoir répondu !
Je ne suis pas un étudiant mais un retraité de 84 au jus.
La programmation est devenu mon passe temps.
Tout simplement j'essaie de comprendre la poo en java.
J'ai simplifié mon essai en tenant compte de vos remarques.
Et j'ai suivi un tuto en tenant compte des conseils ci-dessous
L'opérateur new se charge de créer une instance de la classe et de l'associer à la variable
L'opérateur new est un opérateur de haute priorité qui permet d'instancier des objets et d'appeler une méthode particulière de cet objet
Je veux tout simplement mieux comprendre avec un exercice à ma sauce !!!
Je bute sur la sortie suivante : Il reste dans la poche de bibi :0
Normalement je devrai avoir le chiffre 190
voici mon code
package essaiPOO1;
public class PooEssai {
public static void main(String[] args) {
// TODO Auto-generated method stub
imprimer();
}
public static void imprimer() {
//L'opérateur new se charge de créer une instance de la classe Soustraction
Soustraction reste = new Soustraction(200,10,0);
//new permet d'instancier des objets et d'appeler une méthode particulière de cet objet
System.out.println("Il reste dans la poche de bibi :" + reste.resteAbibi);
}
}
class Soustraction {
int bibiPossède; //variables
int totoLuiPrend;
int resteAbibi;
//constructeur
public Soustraction (int bibiPossède, int totoLuiPrend, int resteAbibi) {
this.bibiPossède = bibiPossède;
this.totoLuiPrend = totoLuiPrend;
this.resteAbibi = resteAbibi;
}
public double calculTVA(){
resteAbibi = (bibiPossède - totoLuiPrend);
return resteAbibi;
}
}// fin de la class Soustraction
Re Bonsoir,
J'ai corrigé mon code au niveau du constructeur mais j'ai toujours le résultat erroné suivant: Il reste dans la poche de bibi :0
Merci pour toute aide
cordialement
rapidegoyes
Le code:
package essaiPOO1;
public class PooEssai {
public static void main(String[] args) {
// TODO Auto-generated method stub
imprimer();
}
public static void imprimer() {
//L'opérateur new se charge de créer une instance de la classe Soustraction
Soustraction reste = new Soustraction(200,10);
//new permet d'instancier des objets et d'appeler une méthode particulière de cet objet
System.out.println("Il reste dans la poche de bibi :" + reste.resteAbibi);
}
}
class Soustraction {
int bibiPossède; //variables
int totoLuiPrend;
int resteAbibi;
//constructeur
public Soustraction (int bibiPossède, int totoLuiPrend) {
this.bibiPossède = bibiPossède;
this.totoLuiPrend = totoLuiPrend;
}
public double calculReste(){
resteAbibi = (bibiPossède - totoLuiPrend);
return resteAbibi;
}
}// fin de la class Soustraction
Bonjour,
Je plussoie.
Si la conception était bien faite, il n'y aurait pas de raison de tomber sur un piège aussi bête.
Le typage de tes objets est primordial, pour savoir ce que tu manipules et ne pas se tromper.
Si tu mets des double partout, tu ne sais plus ce que tu manipules et au final ta classe sers juste à faire une multiplication de manière compliquée...
Voici une proposition de typage :
record Montant(double valeur, String devise) {} class MontantHT extends Montant {} class MontantTTC extends Montant {} record Taux(double valeur) {} class CalculTaux { static MontantTTC calculTaxe(MontantHT montant, Taux taux) { return ... } }Salut
oui bien sûr, mais je ne sais pas si rapidegoyes en est là dans sa formation.