Constructeurs
Initialiser l'état d'un objet à sa création : constructeur par défaut, constructeurs paramétrés et surchargés, appel this(…), valeurs par défaut des attributs et constructeur de copie, en Java.
- 24 cartes
- 4 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Comprendre
Quelques cartes du deck
Constructeur : de quoi s'agit-il ?
Voir la réponse
Bloc de code, au nom de la classe et sans type de retour, exécuté à chaque création d'un objet pour initialiser son état.
Il s'appelle avec
newet ne se rappelle jamais sur un objet existant. Écrire un type de retour, mêmevoid, en ferait une simple méthode.Que valent
p.xetp.yaprès la création dep?
```java
class Point {
int x;
int y;
Point(int x) {
this.x = x;
}
}
Point p = new Point(3);`3et03et30et03etnull
Voir la réponse
3et0Le constructeur n'affecte que
this.x.yest unint: il garde la valeur par défaut 0, jamaisnull(réservé aux références).Un constructeur porte le même nom que la … et ne déclare aucun …, pas même void.
Voir la réponse
Un constructeur porte le même nom que la classe et ne déclare aucun type de retour, pas même void.
public void Point(int x)compile, mais c'est une méthode ordinaire qui s'appelle Point :new Point(3)ne l'appelle pas.Constructeur par défaut : de quoi s'agit-il ?
Voir la réponse
Constructeur sans paramètre que le compilateur ajoute seul, uniquement quand la classe n'en déclare aucun.
Dès qu'on écrit un constructeur, celui-là disparaît :
new Point()ne compile plus si seulPoint(int x)existe.Pourquoi écrit-on un constructeur plutôt que d'affecter les attributs un par un après le
new?- Les attributs ne peuvent être affectés que dans un constructeur
- Sans constructeur, la classe ne peut pas être instanciée
- Le constructeur s'exécute plus vite qu'une affectation
- Aucun objet n'existe sans avoir reçu un état de départ cohérent
Voir la réponse
Aucun objet n'existe sans avoir reçu un état de départ cohérent
Le constructeur garantit que l'initialisation a lieu, une seule fois, avant toute autre utilisation. Sans lui, on pourrait oublier un attribut. Une classe sans constructeur reste instanciable grâce au constructeur par défaut.