Les classes
Les classes
param
paramé
étr
tré
ées
es
Daniel Tschirhart : Programmation Java V1.34
Daniel Tschirhart : Programmation Java V1.34
2
Les classes param
Les classes paramé
étr
tré
ées
es
Soit une pile d'
Soit une pile d'Soit une pile d'
Soit une pile d'é
éé
él
ll
éé
éments d
ments dments d
ments dé
éé
éfinie par une classe
finie par une classe finie par une classe
finie par une classe
Pile.
Pile.Pile.
Pile.
public class Pile
{private Object[] objects;
...
public Pile() { }
// Ajouter un élément dans la Pile
public void empiler(Object object)
{...
}
// Obtenir et retirer l'objet situé au sommet Pile
public Object depiler()
{...
}
}
Daniel Tschirhart : Programmation Java V1.34
3
Les classes param
Les classes paramé
étr
tré
ées (2)
es (2)
L'instanciation d'un objet p de la classe Pile s'écrit
Pile p = new Pile ();
Comme la pile peut contenir n'importe que type (la
classe Object est la classe parente de toutes les
classes)
On peut écrire :
p.empiler("Dupond");
p.empiler(new Integer(5.0));
p.empiler(new Pile());
p.empiler(new Complex());
p.empiler(5); // erreur 5 n'est pas un objet
Daniel Tschirhart : Programmation Java V1.34
4
Les classes param
Les classes paramé
étr
tré
ées (2)
es (2)
Lorsque on effectue un dépilement, le
compilateur Java ne peut pas connaitre le type
réel à dépiler, il a besoin du programmeur pour
lui indiquer quel type de donnée dépiler.
Cette opération appelée transtypage est très
risquée, car si le type ne correspond pas, c'est le
crash assuré.
String s = (String) p.depiler();
// OK si la pile contient un String
int v = ((Integer) p.depiler()).intValue();
//OK si la pile contient un Integer
Daniel Tschirhart : Programmation Java V1.34
5
D
Dé
éfinition d'une classe
finition d'une classe
param
paramé
étr
tré
ée (g
e (gé
én
né
érique)
rique)
public class Pile<T>
{private Object[] objects;
// et non private T[] objects;
// un seul fichier Pile.class quel que soit le type
public Pile() { ... }
public void push(T object)
{...
}
public T pop()
{...
}
}
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !