Probleme en java(les classes )

Fermé
Y.chakir - 15 déc. 2008 à 19:12
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 15 déc. 2008 à 23:49
Bonjour,mes cher ami je suis tombé sur un probleme que je ne suis pas arrivé a le resoudre ,je veux faire un programme qui permet de calculer la somme de objets ,voila le code

import java .util.*;
public class vecteur {
private int n;
private int vect[];
//public vecteur(){}
public void saisir(){
Scanner sc=new Scanner (System.in);
System.out.println("donner la taille ");
n=sc.nextInt();
vect=new int[n];
for(int i=0;i<n;i++){
System.out.println("donner le vecteur ");
vect[i]=sc.nextInt();
}
}
public int maximum(){
int max=vect[0];
for(int i=1;i<n;i++){if(max<vect[i])
max=vect[i];
}
return max;
}
public void afficher(){
for(int i=0;i<n;i++)
System.out.println(" l affichage est "+vect[i]);
}

public vecteur somme(vecteur v1){

vecteur res=new vecteur();

for(int i=0;i<n;i++){
//v1=new vecteur();
// vect=new int[n];
res.vect[i]=vect[i]+v1.vect[i];
}
return res;

}

public static void main(String[]args){
vecteur a=new vecteur ();
vecteur b=new vecteur ();
vecteur c;
a.saisir();
a.afficher();
System.out.println(" le max est "+ a.maximum());
b.saisir();
b.afficher();
System.out.println(" le max est "+ b.maximum());
c=a.somme(b);
c.afficher();
}
}
pour la somme ca march pas bien aidez moi svp il m affiche
Exception in thread "main" java.lang.NullPointerException
at vecteur.somme(vecteur.java:36)
at vecteur.main(vecteur.java:52)


}
A voir également:

2 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
15 déc. 2008 à 20:24
Bonjour,

Pourrais-tu reposter ton code avec les balises code s'il te plait, je t'avouerais que je n'ai pas le coeur à lire du code
non-indenté à cette heure - ci:
http://www.commentcamarche.net/faq/sujet 4622 ccm astuces et conseils pour la redaction#code

Merci d'avance.
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
15 déc. 2008 à 23:49
Bonsoir,
Bon, moi j'ai tout de même fait l'effort (je suis en manque de java sans doute).

Dans ta classe vecteur, ton attribut vect est déclaré en private. Autrement dit, tu ne pourras pas y accéder en dehors de ta classe.
2 solutions possible :
- déclarer ton attribut en public (ou protected ou rien du tout, ici ça marchera)
- utiliser des getters/setters, comme je le fais ici

public vecteur somme(vecteur v1){
 vecteur res=new vecteur();
 for(int i=0;i<n;i++){
  res.setValue(i, vect[i] + v1.getValue(i));
 }
 return res;
}

public int getValue(int i) {
 return vect[i];
}

public void setValue(int i, int value) {
 vect[i] = value;
}


Cordialement,
0