Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question sur les objets

    14 août 2018 à 9:45:26

    Bonjour, j'ai une question concernant les objets, prenons par exemple ce code :

    String a = "ok";
    String b = "ok";
    
    String c = new("ok");

    j'ai donc 3 réferences, mais a et b vont pointer sur le meme objet tandis que c pointe sur un autre objet, je n'arrive pas a comprendre pourquoi b va pointer sur a, il y est contraint ? a-til le choix ? et ces questions valent pour c egalement.

    Si quelqun a un element de réponse merci :)

    • Partager sur Facebook
    • Partager sur Twitter
      14 août 2018 à 10:35:56

      Salut,

      En Java, il n'y a pas de notion de pointeurs, et tu n'es pas censé te soucier de l'adressage mémoire car c'est la JVM qui s'en charge.

      Si tu veux plus d'infos sur les "String", ce lien a l'air sympa : https://medium.com/omarelgabrys-blog/more-about-strings-in-java-fb2480af8a19

      • Partager sur Facebook
      • Partager sur Twitter
      Les seules questions bêtes sont celles qui ne sont pas posées. Mieux vaut paraître bête une fois que de le rester à vie."Vis comme si tu devais mourir demain. Apprends comme si tu devais vivre toujours."
        14 août 2018 à 10:51:50

        ok je vais regarder le lien merci
        • Partager sur Facebook
        • Partager sur Twitter
          25 août 2018 à 15:11:59

          CeBiM a écrit:

          Salut,

          En Java, il n'y a pas de notion de pointeurs, et tu n'es pas censé te soucier de l'adressage mémoire car c'est la JVM qui s'en charge.

          Si tu veux plus d'infos sur les "String", ce lien a l'air sympa : https://medium.com/omarelgabrys-blog/more-about-strings-in-java-fb2480af8a19

          Euh la notion de pointeur en Java est bien présente mais caché. 

          Mrfantastic1 a écrit:

          Bonjour, j'ai une question concernant les objets, prenons par exemple ce code :

          String a = "ok";
          String b = "ok";
          
          String c = new("ok");

          j'ai donc 3 réferences, mais a et b vont pointer sur le meme objet tandis que c pointe sur un autre objet, je n'arrive pas a comprendre pourquoi b va pointer sur a, il y est contraint ? a-til le choix ? et ces questions valent pour c egalement.

          Si quelqun a un element de réponse merci :)


          Pas du tout ici les deux variables ont bien des références différentes mais la même valeur, B ne pointe pas sur A pour que A et B est la même référence il aurait fallut faire : 

          String b = a;

          Mais la modification de A n'aurait pas entraîné celle de B puisque en Java un String n'est pas modifiable la Jvm recréer le nouveau String il aura donc une autre référence mais avec d'autre objets cela aurait marché par exemple :

          import java.lang.Math; 
          
          public class MyObject{
            
          	int integer;
                
                  public MyObject(int i){
              	     this.integer = i;
           	}
                
           	public String toString(){
                	     return "MyObject : " + this.integer;
            	}
            
          	public static void main(String[] args){
              	     MyObject a = new MyObject(2);
                	     MyObject b = a;
                	     System.out.println(a);
                	     b.integer = 5;
                	     System.out.println(a);
          	}
            
          }


          ( Sauf les types primitifs )





          -
          Edité par Splintz 25 août 2018 à 15:13:19

          • Partager sur Facebook
          • Partager sur Twitter

          Question sur les objets

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown