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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de J_Lennon
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    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 émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    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 très actif Avatar de J_Lennon
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    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
    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