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

Java Discussion :

passer d'une variable locale à une méthode à un paramètre du class


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 42
    Par défaut passer d'une variable locale à une méthode à un paramètre du class
    Bonjour,
    j'ai une classe test qui contient plusieurs méthodes mais à chaque méthode il ya une variable(adresse ip) que je la déclare la même dans chaque méthode
    voila la déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Address targetAddress = new UdpAddress("127.0.0.1/161");
    je veux que cette variable soit entrée en paramètre à la classe dans le main
    c'est à dire
    au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    test ts=new test();
    dans le main
    je fait entée sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    test ts=new test(127.0.0.1);
    sachant que le 127.0.0.1 est de type InetAddress
    et comme vous avez vu mes métohdes utilise le type Address et il ya la /161

    Merci de me donner la solution
    Vive developpez.

  2. #2
    Membre extrêmement actif
    Profil pro
    Développeur Java Indépendant
    Inscrit en
    Mai 2007
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java Indépendant

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 333
    Par défaut
    Bonjour

    Dans ta classe test, tu écris cette méthode (qui est en fait un constructeur) :
    et tu met la variable targetAddress en attribut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Address targetAddress = null;
     
    public test (String variable){
     
    targetAddress = new UdpAddress(variable);
     
    }
    Normalement, les noms de classe commencent par une majuscule.

    Boncourage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 14
    Par défaut
    Au lieu de déclarer ta variable dans chaque méthode, il suffirait de le mettre comme attribut de la classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Test{
     
      private Address targetAddress;
     
      public Test( String monAddress){
        targetAddress = new UdpAddress(monAddress);
      }
     
      public taMethode( ){
        //ton attribut targetAddress (ou this.targetAddress) sera accessible sur tous tes méthodes
      }
     
    }

  4. #4
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 42
    Par défaut re
    Merci pour vos réponses

    avant les modifications j'ai sa dans mes méthodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Address targetAddress = new UdpAddress("127.0.0.1/161");
    et apres la création du constructeur voila
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Address targetAddress = new UdpAddress(this.targetAddress+"/161");
    et voila le constructeur de ma classe ma classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class Snmpwalk
    {
     
       Address targetAddress = null;
     
     
        public Snmpwalk (String variable)
        {
     
           targetAddress = new UdpAddress(variable);
     
        }
    et sa l'intanciation dans le main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Snmpwalk wk=new Snmpwalk("127.0.0.1");
    il y'a les erreures suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    init:
    deps-jar:
    Compiling 1 source file to D:\test\SnmpTest2\build\classes
    Note: D:\test\SnmpTest2\src\snmptest2\Snmpwalk.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    compile:
    run:
    Exception in thread "main" java.lang.IllegalArgumentException: 127.0.0.1
            at org.snmp4j.smi.UdpAddress.<init>(Unknown Source)
            at snmptest2.Snmpwalk.<init>(Snmpwalk.java:28)
            at snmptest2.Main.main(Main.java:29)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 1 second)
    j'ai pas compris

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 14
    Par défaut
    Tu ne dois pas remettre cette ligne dans tes méthodes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Address targetAddress = new UdpAddress(this.targetAddress+"/161");
    L'attribut que tu as déclaré ci-dessous est utilisable dans toute ta classe, en gros c'est une variable/objet pour toute la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Address targetAddress = null;
    Il faut juste l'initialiser dans le constructeur, j'aurai fais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class Snmpwalk
    {
     
       Address targetAddress = null;
     
        public Snmpwalk (String variable)
        {
     
           targetAddress = new UdpAddress(variable+"/161");
     
        }
    }
    Ton targetAddress ci-dessus est donc ta variable que tu utilisera dans tes méthodes. Tu n'a pas besoin de le redéclarer.

  6. #6
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 42
    Par défaut re
    Merci beaucoup sa marché très bien
    désolé mais maintenant je veux que l'adresse ip de type String entrée en paramètre dans la classe soit importer d'une page jsp située dans le même projet web
    comment je peux importer cette variable d'une page JSP
    merci

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/01/2012, 17h56
  2. passer une variables d'une forme a une autre
    Par levasseur62 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 11/01/2011, 09h40
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. Echec de stockage d'une valeur dans une variable locale pointée par EBP
    Par homeostasie dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 16/12/2008, 13h52
  5. faire passer une variable d'une fct js à une page php
    Par harlock59 dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2005, 14h41

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