Apelle des Objets dansJAVA

Fermé
siba Messages postés 35 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 19 mars 2008 - 2 janv. 2008 à 20:53
siba Messages postés 35 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 19 mars 2008 - 4 janv. 2008 à 11:26
Bonjour,
Bonjour à tous ,je programme avec java et j'ai 1 probléme avec l'appelle des methodes et des Objets dans une autre programe,le premier programme c'est public class DemiAdditionneur qui contient des variables tous privés avec les set et les gets pour ramener ses valeurs et deux fonctions :
1- public void calculerSomme();
2-public void calculerRetenue();
et je l'ai compilé et executé tout est bien et les resultats de la somme et la retenue sont vrais je veux utiliser ce programme dans 1 autre programme mais les resultats de somme1 et retenue1 sont fausse c.a.d la classe AdditionneurComplet n'a pas appelé DemiAdditionneur et je ne sais pas pourquoi?
peut etre grace à les données privés mais je n'arrive pas à corrigé et obtenir le resultat vrai de la sommme et la retenue l,voici mon programe:
public class AdditionneurComplet{
private int operande1;
private int operande2;
private int operande3;
private int retenue1;
private int somme1;
DemiAdditionneur D1=new DemiAdditionneur(operande1,operande2);
DemiAdditionneur D2=new DemiAdditionneur(operande3,D1.getSomme());
public AdditionneurComplet(){
this(0,0,0);
}
public AdditionneurComplet(int operande1,int operande2,int operande3){
this.operande=operande1;
this.operande2=operande2;
this.operande3=operande3;
}
public void setOp1(int op1){
this.operande1=operande1;
}
public int getOperande1(){
return operande1;
}
public void setOperande2(int operande2){
this.operande2=operande2;
}
public int getOperande2(){
return operabnde2;
}
public void setR0(int operande3){
this.operande3=operande3;
}
public int getOperande3(){
return operande3;
}
public int getRetenue1(){
return retenue1;
}
public int getSommme1(){
return somme1;
}
public void calculerSommme1(){
s1=(D1.getSomme())^operande3;
}
public void calculerRetenue1(){
r1=D2.getRetenue()|D1.getRetenue();
}
}
//le test
public class TestAdd {
public static void main (String[]args){
AdditionneurComplet A=new AdditionneurComplet();
A.setOperande1(1);
A.setOperande2(1);
A.setOperande3(1);
A.calculerSomme1();
A.calculerRetenue1();
System.out.println("LES RESULTATS");
System.out.println("***************");
System.out.println("la somme est:"+A.getSomme1());
System.out.println("la retenue est:"+A.getRetenue1());
}
}

2 réponses

Je n'ai pas compris tout ton problème mais déjà à la lecture du code D1 et D2 contiennent n'importe quoi puisque tu les instancies à leurs déclarations. Réserve ça au contructeur.

public class AdditionneurComplet{
private int operande1;
[...]
private DemiAdditionneur D1;
private DemiAdditionneur D2;

public AdditionneurComplet(){
this(0,0,0);
}

public AdditionneurComplet(int operande1,int operande2,int operande3){
this.operande=operande1;
this.operande2=operande2;
this.operande3=operande3;
this.D1 =new DemiAdditionneur(operande1,operande2);
this.D2 =new DemiAdditionneur(operande3,this.D1.getSomme());
}

Ca marchera un peu mieux voir tu n'auras plus de problème.
0
siba Messages postés 35 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 19 mars 2008 1
4 janv. 2008 à 11:26
merci Hotrod mais sa na pas marché ,je pence que le probléme c'est dans les données privé et je n'arrive pas à le reglé l'Objet D1 et D2 que j'ai instansié ne sont pas reconnu dans la classe AdditionneurComplet et la preuve la resultat de la somme et la retenue donner d'autre possibilités pour regler ce probléme
merci d'avance
0