bonjour,
c'est mon programme, je n'ai pas compris la source de l'erreur affichée
merci pour l'aide
bonjour,
c'est mon programme, je n'ai pas compris la source de l'erreur affichée
merci pour l'aide
Bonjour,
J'ai quelque talents de devin et à vu de nez comme ça, je dirais un NullPointerException, mais je me surestimes surement un peu...
___
Code source ?
Erreur retournée?
« War is peace. Freedom is slavery. Ignorance is strength. » - George Orwell
Salut,
euh moi j'ai pas de talents de devin, mais je suppose que tu as oublié de spécifier ton erreur. Ca pourrait éventuellement nous aidé si tu nous donnais le texte de ton erreur^^.
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
le voila ^^
ProgAdresse.java
Adresse.java
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 import java.util.*; class ProgAdresse { public static void main(String[] args) { Adresse A1; Adresse A2; //int num1,num2,code1,code2; //String nom1,nom2,v1,v2; Scanner s=new Scanner(System.in); A1.Lire(); A2.Lire(); A1=new Adresse(); A2=new Adresse(); A1.Afficher(); A2.Afficher(); if(A1.Egale(A2)==true) System.out.println("les deux Adresses sont égalesn/n"); else System.out.println("non, elles ne sont pas égalesn/n");} }
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 import java.util.*; public class Adresse { int numero; String nomRue; int codPostal; String ville; //Adresse(int num,String nom,int code,String v){ //numero=num; //nomRue=nom; //codPostal=code; //ville=v; //} void Lire(){ Scanner e=new Scanner(System.in); System.out.println("donner le numéro\n"); numero=e.nextInt(); System.out.println("donner le nom de la rue\n"); nomRue=e.next(); System.out.println("donner le code postal\n"); codPostal=e.nextInt(); System.out.println("donner la ville"); ville=e.next(); } void Afficher(){ System.out.println(numero+" "+codPostal+" "+nomRue+" "+ville); } boolean Egale(Adresse A){ if ((this.numero==A.numero)&&(this.codPostal==A.codPostal)&& (this.nomRue).compareTo(A.nomRue)&& (this.ville).compareTo(A.ville) ) return(true); else return(false);}} //fin Adresse
Ça c'est le code source de ton programme , pas l'erreur que t'affiche ton compilateur.
Les gens vont pas réécrire le code de ton exercice pour toi.
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The local variable A1 may not have been initialized
The local variable A2 may not have been initialized
at ProgAdresse.main(ProgAdresse.java:14)
Tu essayes d'invoquer la méhtode Lire() pour les objets Adresses A1 et A2 alors que tu ne les a pas encore instanciés, entre autres
C'est ce que te dit le message d'erreur : "A1 et A2 n'ont pas été initialisés"
Faudrait mettre tes instructions dans l'ordre, d'abord, déclare-les, ensuite instancie-les, et après utilise-les avec tes méthodes ou autres.
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 public static void main (String [] args) { // Déclaration variables Adresse A1; Adresse A2; // int num1,num2,code1,code2; // String nom1,nom2,v1,v2; Scanner s = new Scanner (System.in); // Instanciation des variables A1 = new Adresse (); A2 = new Adresse (); // Utilisation des variables A1.Lire (); A2.Lire (); A1.Afficher (); A2.Afficher ();
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
Je ne vois pas l'intérêt de déclarer des variables sans les instancier directement, dans le cas présent ?
Ben on est dans la rubrique débuter, donc en général pour les débutants (et j'en fais partie) on détails bien les étapes, mais c'est tous à fait possible de déclarer et par la même d'instancier.
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
Personnellement je trouve ça dérangeant dans la lecture, notamment quand ça se complique et qu'un objet est déclaré au début, mais instancié plusieurs fois dans des boucles, avec entre 2 un objet qui est en fait hors scope
Alors tu vas me dire que dans certains cas, on peut s'arranger, etc., mais à mon sens ça reste de l'habitude qui a la vie dure. En plus quand dans un IDE (genre Eclipse) je clique sur une variable, je préfère que ça m'amène à la déclaration effective plutôt qu'au début de la méthode ... Autant commencer directement en codant clairement
Ben dans la pratique c'est mieux c'est clair, mais pour explique (surtout si la personne début) c'est plus pédagogique de développer un peu. Mais je suis d'accord avec toi pour ce que tu dis.
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
Je suis mitigé moi. J'ai appris en structurant mes méthodes et classe comme ça du coup j'ai gardé cette habitude. Moi, contrairement à toi je trouve ça plus lisible du coup (comme quoi le goût et les couleurs)
Comme ça en intro., je mets la déclaration de mes variables avec possibilité de commentaire sur leur rôle alors que par la suite, les commentaires me serviraient plus à expliquer à quoi sert la ligne de code :
Mais bon, c'est ma façon de justifier cette manie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 MaVariable a; // objet connecteur ... ... du code ... a.faitSaConnexion() // connexion établit entre a et ...
Responsable Java de Developpez.com (Twitter et Facebook)
Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
--------
Architecte Solution
LinkedIn : https://www.linkedin.com/in/nicolascaudard/
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager