Bonjour! Je suis en plein apprentissage du langage Java et je butte sur la visibilité à donner au méthodes interne à mes classes à partir du sujet suivant:
Dans Stack, je souhaite compléter les méthodes setTop(Object), getTop() et next(); dans Maillon, compléter la méthode toString() et préciser la visibilité des méthodes setNext(Maillon), setElement(Object) et toString
La classe Maillon
c'est la réalisation Java d’un maillon.
Elle comprend un attribut element qui est l’élément mis dans la pile et un attribut next qui référence le maillon suivant.
La classe Maillon n’est visible que par les classes de son espace de noms.
Elle est définie dans le même fichier que la classe Stack.
La classe Maillon a deux constructeurs :
1. un constructeur qui admet un élément passé en argument, dans ce cas le maillon suivant est établi à null lors de la déclaration des attributs.
2. un constructeur qui admet un élément passé en argument et le maillon suivant.
La classe Maillon a trois méthodes ayant une visibilité par défaut :
- Object getElement() retourne l'élément associé au maillon courant
- Object next() retourne le maillon suivant
- boolean hasNext() retourne true s’il existe un maillon suivant, false sinon
Les méthodes de réalisation sont:
•void setNext(Maillon next) affecte l’attribut next avec le maillon passée en argument
•void setElement(Object o) affecte l’attribut element avec l’objet o passé en argument
La classe Stack
La classe Stack est publique, elle a un attribut top qui référence le premier maillon.
Elle a deux constructeurs:
1.un constructeur vide dans ce cas l’élément sommet est égal à null et la pile est vide et de taille zéro.
2. un constructeur qui admet un élément passé en argument de type Object, dans ce cas, il y a création d’un maillon (instance de la classe Maillon) avec l’élément suivant à null.
La classe Stack admet les quatre méthodes publiques suivantes :
- void push(Object object) place au sommet de la pile l’objet passé en argument
- Object pop() retourne l’élément qui se trouve au sommet de la pile et place l’élément suivant au sommet de la pile.
- Object first() accède au premier élément de la pile sans modifier la pile boolean
- isEmpty() retourne true si la pile est vide
Méthodes de réalisation de la classe Stack:
•void setTop(Object o) établit le sommet de la pile avec le maillon passé en argument
• Maillon getTop() retourne le sommet de la pile
• Maillon next() retourne le maillon suivant
J'ai fait:
Puis j'ai dit que getTop était public car sinon, il y aurait un non sens à ne pouvoir avoir accès à un getter.
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 public class Stack { private Maillon top; public Stack(){} public Stack(Object element){ setTop(new Maillion(element)); } private setTop(object top){//car top est private, mais en même temps j'ai envie d'y accéder, non? this.top=top; } public next(element){ element.next; } }
Puis dans Maillon j'ai modifier toString
Comme les attributs étaient private j'ai dit que les méthodes setNext et setElement étaient private.
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 Class Maillon private object element; private maillon next; Maillon (object element){ this.element=element; } Maillon (object element, Maillon next){ this.element=element; this next=next; } toString(){ system.out.println(element); /*comme j'ai pas plus d'indication...*/ }
Partager