Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -ht tp://www.ensta.fr ENSTA IN204 Introduction à JAVAOlivier SigaudLIP6/AnimatLabolivier.sigaud@lip6.fr01.44.27.88.53Introduction à JAVA: construction des objetsCe document est mis à votre disposition par l'ENSTA sous couvert de la licence "Creative Commons" Page : 1Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -ht tp://www.ensta.fr Plan du cours 2• Tableaux d'objets• Copie d'un objet• Problèmes de copie• Passage de paramètres• Membres statiques• Quelques exemples et conventionsIntroduction à JAVA: construction des objetsCe document est mis à votre disposition par l'ENSTA sous couvert de la licence "Creative Commons" Page : 2Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -ht tp://www.ensta.fr Tableaux d'objetsAllocation dynamique :valeurs[0] null Object[] valeurs; valeurs[2] null valeurs = new Object[5]; nullvaleurs[4] Attention, on n’a pas encore réservé la mémoire pour des objets contenus dans le tableau…Introduction à JAVA: construction des objetsCe document est mis à votre disposition par l'ENSTA sous couvert de la licence "Creative Commons" Page : 3Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -ht tp://www.ensta.fr Tableaux d’objets (2)Voiture[] cars;Voiturecars[0] objet crééavec new cars[2] Voiturecars[4] objet crééavec ...
Il peut y avoir plusieurs constructeurs pour une même classe, avec des paramètres différents Cela signifie que l'on peutsurchargerles constructeurs comme les méthodes Tant qu'aucun constructeur n'est créé, il existe un constructeur par défaut, qui ne prend pas de paramètres et ne fait rien, sauf allouer la mémoire Du coup, quand on rajoute un constructeur avec paramètres, le constructeur par défaut disparaît :(
Introduction à JAVA: construction des objets
Page : 6
• • • •
Duplication d'objets
On peut avoir besoin de créer deux objets absolument identiques Veut-on deux références sur le même objet ou deux objets différents avec les mêmes valeurs ? Deux télécommandes pour la même télévision, ou bien deux télévisions de même modèle ? S'il n'y a qu'une télévision, changer de chaîne sur une télécommande change la chaîne sur le poste unique...
Introduction à JAVA: construction des objets
Page : 7
Copie d'uneréférence
mavoiture
voiture 2 _
Voiture objet créé avec new
mavoiture = new Voiture(); voiture2 = mavoiture;
Introduction à JAVA: construction des objets
Page : 8
Constructeur decopie
Le constructeur de copie sert à dupliquer les objets
mavoiture
voiture 2 _
Voiture objet créé avec new
Voiture objet créé avec new
mavoiture = new Voiture(); voiture2 = new Voiture(mavoiture);
Introduction à JAVA: construction des objets
Page : 9
Constructeur decopie : syntaxe
class Voiture { int nbportes; double cylindree;
}
Voiture(Voiture v) {
}
nbportes = v.nbportes; cylindree = v.cylindree;
Introduction à JAVA: construction des objets
Page : 10
Exercice
• Soit la classeVoiturequi contient les attributs suivants : class Voiture { Moteur moteur; int nbportes; double cylindree; }
• Moteurest une autre classe • Ecrire le constructeur de copie de la classeVoiture