IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Débutant recherche de l'aide


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Par défaut Débutant recherche de l'aide
    Bonjour à tous

    Je débute et je suis confronté a un problème surement de base !
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package com.moi.package1;
     
    import java.lang.Double;
     
    public class Stat {
    	static double[] tb;
     
    	  double somme() {
        	double r = 0;
        	for (int i = 0; i <= tb.length; i++){
        		r = r + tb[i];
        	};
        	return r;
        }
    	  double maximum() {
    	        double r = tb[0];
    	        for (int i = 1; i <= tb.length; i++){
    	        	if (tb[i] > r) {r = tb[i];}
    	        }
    	        return r;
    	    }
     
    	 double minimum() {
    	    	double r = tb[0];
    	        for (int i = 1; i <= tb.length; i++){
    	        	if (tb[i]< r){r = tb[i];}
    	        }
    	        return r;
    	     } 	
     
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		for (int i = 0;  i <= (args.length); i++){
    		  tb[i]= Double.parseDouble(args[i]);
    		}
    		System.out.println(somme()+" "+maximum()+" "+minimum());
    à la compilation j'ai une erreur, dans le main l'évaluation de somme(), maximun(), et minimum() ne s'effectue pas !

    quelqu'un pourrais t'il me dire pourquoi ???

    MERCI

  2. #2
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Par défaut
    Les méthodes somme, maximum et minimum ne sont pas statiques mais tu les appelles dans ton main qui est statique.

    Tu ne peux pas appeler des méthodes non statiques dans une méthode statique, tu dois instancier ton objet Stat auparavant ou bien passer tes méthodes en statiques.

    je te conseille d'ailleurs d'utiliser un IDE (genre eclipse) qui te détecte tout de suite ce type d'erreur.

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    il te faut déclarer tes méthodes somme, maximum et minimum en tant que publiques si tu veux pouvoir les appeler en dehors de ta classe

  4. #4
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Comme dit précédemment, Soit tu mets tous en statique, soit tu mets tous en public et tu utilise une instance de Stat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public double somme() {//...}
    public double maximum(){//...}
    //...
     
    public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		for (int i = 0;  i <= (args.length); i++){
    		  tb[i]= Double.parseDouble(args[i]);
    		}
    		Stat stat = new Stat();
    		System.out.println(stat.somme()+" "+stat.maximum()+" "+stat.minimum());

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Par défaut Merci
    Bonjour,

    Tout d'abord merci pour vos réponses....
    Bon j'ai suivi vos conseils....Mais voilà !!! ça ne fonctionne toujours pas !
    J'ai exécuté cette classe dans eclipse mais les erreurs ne me guident guère dans l'orientation vers laquelle me diriger....
    Voici mon nouveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package Exemples;
    import java.lang.Double;
     
    public class Stat {
    	public double[] tb;
     
    public double somme() {
    	double r = 0;
    	for (int i = 0; i <= tb.length; i++){
    		r = r + tb[i];
    	};
    	return r;
    }
     
    public double maximum() {
    	double r = tb[0];
    	for (int i = 1; i <= tb.length; i++){
    		if (tb[i] > r) {r = tb[i];}
    	}
    	return r;
    }
     
    public double minimum() {
    	double r = tb[0];
    	for (int i = 1; i <= tb.length; i++){
    		if (tb[i]< r){r = tb[i];}
    	}
    	return r;
    }
     
    public static void main(String[] args) {
    	Stat stat = new Stat();
    	for (int i = 0; i <= (args.length); i++){
    		stat.tb[i]= Double.parseDouble(args[i]);
    	}
    	System.out.println(stat.somme()+" "+stat.maximum()+" "+stat.minimum());
    }
     
    }
    l'avez vous executé de votre côté ? Peut-être faut-il faire 2 classes ?

    MERCI

  6. #6
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par sb35 Voir le message
    les erreurs ne me guident guère
    Et si tu nous les donnais (avec les numéros de lignes), au lieu de nous faire deviner ?

  7. #7
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    euh ... dejà commencer avec la condition d'arrêt de la boucle for!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for(int ix = 0 ; ix < tb.length; ix++) {
    }
    inférieur pas inférieur ou égal!
    sinon tu plantes à l'exécution ....

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Par défaut erreur
    Bon j'ai modifié tous les for avec la nouvelle condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    import java.lang.Double;
     
    public class Stat {
    	public double[] tb;
     
    public double somme() {
    	double r = 0;
    	for (int i = 0; i < tb.length; i++){
    		r = r + tb[i];
    	};
    	return r;
    }
     
    public double maximum() {
    	double r = tb[0];
    	for (int i = 1; i < tb.length; i++){
    		if (tb[i] > r) {r = tb[i];}
    	}
    	return r;
    }
     
    public double minimum() {
    	double r = tb[0];
    	for (int i = 1; i < tb.length; i++){
    		if (tb[i]< r){r = tb[i];}
    	}
    	return r;
    }
     
    public static void main(String[] args) {
    	Stat stat = new Stat();
    	for (int i = 0; i < (args.length); i++){
    		stat.tb[i]= Double.parseDouble(args[i]);
    	}
    	System.out.println(stat.somme()+" "+stat.maximum()+" "+stat.minimum());
    }
     
    }


    Voici l'erreur dans la console :

    Exception in thread "main" java.lang.NullPointerException
    at com.moi.package1.Stat.main(Stat.java:35)

    et en cliquant sur la ligne ...c'est là que ça plante !!!

    stat.tb[i]= Double.parseDouble(args[i]);

Discussions similaires

  1. débutant recherche aide
    Par lionel21 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/01/2008, 16h00
  2. débutant recherche aide pour envoi formulaire
    Par peytona dans le forum Flash
    Réponses: 1
    Dernier message: 08/06/2007, 07h20
  3. Débutant recherche aide
    Par Flyingdutchman dans le forum OpenGL
    Réponses: 3
    Dernier message: 07/03/2006, 12h36
  4. Débutant recherche SGBD ... (mylittlebase ?)
    Par Phil39 dans le forum Débuter
    Réponses: 1
    Dernier message: 10/10/2004, 11h25
  5. [débutant][Swing] Fichier d'aide
    Par Invité dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 02/06/2004, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo