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

avec Java Discussion :

Question sur le mot new


Sujet :

avec Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 116
    Points : 55
    Points
    55
    Par défaut Question sur le mot new
    bonjour
    qui peut m'expliquer cette phrase:
    "new créé un objet et retourne un pointeur"
    merci

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    C'est un peu plus facile d'expliquer quand on a un peu de contexte... À minima une phrase avec une majuscule au début et un point à la fin...

    Telle que, on peut légitimement penser que cette phrase est en rapport avec le langage C++, non pas le langage java. En java, on utilise plutôt le terme référence d'objet à la place de pointeur.

    Pour faire court, cela veut dire (en java), que le terme new te permet de créer un objet et d'en disposer pour pouvoir le manipuler dans ton code. Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // ici je crée un objet de classe StringBuffer, 
    // et je mets sa référence dans la variable "sb".
    StringBuffer sb = new StringBuffer();
     
    // ici je manipule l'objet que je viens de créé, 
    // en m'appuyant sur la variable sb.
    sb.append("toto");

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut. Premirement, en java il n'existe pas des pointeurs. Le mot new crée un objet cad crée une instance de la classe.
    En fait, en java on crée des classes qui contiennent des attributs et des méthodes et pour utiliser ces méthodes en dehors de sa classe il faut créer une instance de sa classe par le mot new.
    Par exemple :
    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
     
    //1er classe
    public class operation{
     
        public int somme(int a,int b) { 
              return a+b;
         }
    }
     
    //2eme classe
    public class calcul{
         int x;
         int y;
        public void main(){
          operation op=new operation()
          int result=op.somme(x,y);
          System.out.println(result);
    }
    }

  4. #4
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 583
    Points : 15 575
    Points
    15 575
    Par défaut
    Salut. Premirement, en java il n'existe pas des pointeurs.
    Ce n'est pas tout a fait vrai. En java on a l'habitude de parler de référence plutôt que de pointeur, mais le fonctionnement est identique au système de pointeur C. D'ailleurs si on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Object objet = null;
    objet.toString();
    On obtient bien une NullPointerException.
    En fait la seule véritable différence avec le C, c'est que l'objet est automatiquement détruit quand toutes les références vers celui ci sont perdues.

    On a pas le choix comme en C/C++. En java les variables correspondant à des type primitifs (byte, char, short, int, long, float et double) sont contiennent toujours leurs valeurs alors que les autres sont toujours des pointeurs(ou plutôt référence pour parler plus java).

    Il n'y a donc pas de double syntaxe avec * et -> pour les pointeurs. Si tu as l'habitude du C++, il te suffit de te dire que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Objet objet = new Objet()
    objet.methode();
    et équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Objet *objet = new Objet()
    objet->methode();

  5. #5
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Citation Envoyé par Uther Voir le message
    En fait la seule véritable différence avec le C, c'est que l'objet est automatiquement détruit quand toutes les références vers celui ci sont perdues.
    Et qu'il n'existe pas de référence de référence (pointeur de pointeur, symbole '&') ; en java on a que des références d'objet.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par gifffftane Voir le message
    Et qu'il n'existe pas de référence de référence (pointeur de pointeur, symbole '&') ; en java on a que des références d'objet.
    Et que les références, contrairement aux pointeurs, ne possèdent pas d'arithmétique

    Bref, mis à part que les deux référencent dynamiquement quelque chose en mémoire ça n'a vraiment rien en commun

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

Discussions similaires

  1. question sur l'opérateur new
    Par deubelte dans le forum Débuter
    Réponses: 54
    Dernier message: 29/03/2010, 10h47
  2. question sur le mot clef const
    Par elmcherqui dans le forum C++
    Réponses: 3
    Dernier message: 08/07/2008, 08h42
  3. Deux questions sur le mot clé EXTERN
    Par Bleys dans le forum C++
    Réponses: 4
    Dernier message: 02/03/2008, 14h58
  4. Question sur String variable = new String( )
    Par beegees dans le forum Langage
    Réponses: 12
    Dernier message: 14/05/2007, 21h38
  5. [Sécurité] Question sur les mots de passes
    Par wallawalla dans le forum Langage
    Réponses: 4
    Dernier message: 02/04/2007, 17h51

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