bonjour
qui peut m'expliquer cette phrase:
"new créé un objet et retourne un pointeur"
merci
bonjour
qui peut m'expliquer cette phrase:
"new créé un objet et retourne un pointeur"
merci
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");
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); } }
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 :Salut. Premirement, en java il n'existe pas des pointeurs.On obtient bien une NullPointerException.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Object objet = null; objet.toString();
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 :
et équivalent à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Objet objet = new Objet() objet.methode();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Objet *objet = new Objet() objet->methode();
Partager