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 :

[Debutant] Petit incompréhension


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
    Juillet 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 24
    Par défaut [Debutant] Petit incompréhension
    Bonjour a tous ( voire bonsoir vu l heure ! )

    J ai un truc qui me chiffonne , je suis sur qu il y a une explication logique mais je suis pas trop sur alors je fais appel a vous . Voila j ai le bout de code suivant :

    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
    import javax.swing.JFrame;
    
    public class Payroll extends javax.swing.JFrame {
    
      public Payroll() {
      super ("Defaut");
      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
      }
      
      public Payroll(String nom) {
      this();
      setTitle(nom);
      
      }
    
    
      public static void main(String[] arguments) {
        
      //Payroll pf = new Payroll();   Quand je decommentarise ça et vire le bloc if en dessous  , ça passe bien
        if (arguments.length > 0) {
            String argu = arguments[0];
            Payroll pf = new Payroll(argu);
            } else {
            Payroll pf = new Payroll();
            }
        
        for (int i = 10; i < 400; i++) {
        pf.setSize(400 - (i/2), 300 - (i/2));
        }
      }
      
    }
    Le truc c est que ça ne compile pas :
    le compilateur trouve une erreur sur le pf.setSize = cannot find symbol

    Par contre quand je vire mon if/else et fais mon new Payroll sans le conditionner ça passe bien .

    Alors the question is : Pourquoi ??

    Le compilateur voit il 2 objets pf dans mon code et décide que quand j y fais appel il y a confusion ? Je suppose qu il ne faut jamais conditionner l appel a un constructeur ??

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !

    C'est tout simplement une question de portée :

    Tu déclares une variable dans le corps du if (ou du else), à partir du moment où tu sors de ce bloc d'exécution (i.e. que tu franchis le } associé), cette variable n'existe tout simplement plus...

    Pour passer outre l'erreur :
    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
    import javax.swing.JFrame;
     
    public class Payroll extends javax.swing.JFrame {
     
    public Payroll() {
    super ("Defaut");
    setSize(400, 300);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    }
     
    public Payroll(String nom) {
    this();
    setTitle(nom);
     
    }
     
     
    public static void main(String[] arguments) {
     
    Payroll pf; //Là on déclare juste un objet sans le définir (il existe, mais n'est pas initialisé
    if (arguments.length > 0) {
    String argu = arguments[0];
    pf = new Payroll(argu); //ici on l'initialise avec argument...
    } else {
    pf = new Payroll(); //... ou sans
    }
     
    for (int i = 10; i < 400; i++) {
    pf.setSize(400 - (i/2), 300 - (i/2));
    }
    }
     
    }
    Bonne continuation
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 24
    Par défaut
    Ah ok ... Merci de ton aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DEBUTANT] Petit probleme
    Par ChRom dans le forum Débuter
    Réponses: 10
    Dernier message: 16/01/2007, 15h17
  2. [DEBUTANT] petit probleme de requete sql
    Par eclipse012 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/12/2006, 15h10
  3. [Débutant] Petit problème pour calcul de somme
    Par kriskikout dans le forum Ada
    Réponses: 4
    Dernier message: 04/11/2006, 06h47
  4. [DEBUTANT]Petit pb avec mon installation toute neuve!
    Par le lynx dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 24/01/2006, 17h10
  5. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52

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