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
lé
éé
é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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!