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 :

Utilisation des références


Sujet :

Java

  1. #1
    Membre habitué Avatar de J_Lennon
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    Points : 172
    Points
    172
    Par défaut Utilisation des références
    Bonjour,

    J'ai longtemps programmé en C++ et par conséquent j'ai abusé des pointeurs. JE cherche l'équivalent en JAVA. En gros je cherche à faire ce genre de chose, histoire de modifier plusieurs valeurs via une méthode.
    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
     
    #include <iostream>
     
    void modifier_int(int *valeur);
     
    int main(int argc, _TCHAR* argv[])
    {
    	int note = 18;
            modifier_int(&note);
    	std::cout << note << std::endl; // Affiche 20;
    	return 0;
    }
     
    void modifier_int(int *valeur)
    {
            *valeur = 20;
    }
    Je suppose qu'il faut utiliser les références, mais la syntaxe semble différente de celle utiliser en C++.

    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Les types primitifs sont passés par valeur en java, par contre tu peux bien sur renvoyer une valueur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static void main(String[] args)
    {
    	int note = 18;
            note = modifier_int(note);
            System.out.println(note);
    }
     
    void int modifier_int(int valeur)
    {
            return 20;
    }
    Si tu veux simuler un passage par adresse, tu peux utiliser un tableau (new int[] {note}), ou bien passer une classe modifiable en argument

  3. #3
    Membre habitué Avatar de J_Lennon
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    Points : 172
    Points
    172
    Par défaut
    Ok merci, mais c'est pas top. D'apres ce que tu dis, il est impossible de faire ce genre d'opération sans passer par l'utilisation de tableau.

    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
     
     
    #include <iostream>
     
    void modifier_int(int *valeur1, double *valeur2);
     
    int main(int argc, _TCHAR* argv[])
    {
    	int note = 18;
            double moyenne = 2.4;
            modifier_int(&note, &moyenne);
    	std::cout << note << " -  " << moyenne << std::endl; // Affiche 20 - 18.4;
    	return 0;
    }
     
    void modifier_int(int *valeur1, double *valeur2)
    {
            *valeur1 = 20;
            *valeur2 = 18.4;
    }

  4. #4
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par J_Lennon Voir le message
    Ok merci, mais c'est pas top. D'apres ce que tu dis, il est impossible de faire ce genre d'opération sans passer par l'utilisation de tableau.
    [code]
    Il faudrait plutôt créer ton propre objet contenant ton int à modifier.

    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
    class MonInt {
     
        private int note;
     
        public MonInt(int note) {
            this.note = note;
        }
     
        public int getNote() {
            return this.note;
        }
     
        public void setNote(int note) {
            this.note = note;
        }
    }

    Ce qui donnera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static void main(String[] args) {
    	MonInt note = new MonInt(18);
            modifierInt(note);
            System.out.println(note.getNote());
    }
     
    void modifierInt(MonInt obj) {
            obj.setNote(20);
    }

Discussions similaires

  1. utilisation des références
    Par drKzs dans le forum C++
    Réponses: 7
    Dernier message: 25/07/2013, 16h10
  2. Réponses: 1
    Dernier message: 15/07/2011, 08h06
  3. [PHP 5.2] Utilisation des références
    Par Halleck dans le forum Langage
    Réponses: 5
    Dernier message: 17/11/2009, 08h06
  4. Réponses: 4
    Dernier message: 08/06/2006, 23h04
  5. Utilisation des références pour les tableaux
    Par Bouboubou dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 14/12/2005, 13h47

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