Médiaforma

All posts tagged set

Par définition, les propriétés de type private ne peuvent être accédées que par les méthodes de la classe dans laquelle elles ont été définies. Pour cela, on utilise des fonctions publiques appelées getter et setter. Leur nom commence toujours par get pour le getter et par set pour le setter.

Supposons que la propriété suivante soit définie dans la classe :

private $fyeo = "For Your Eyes Only";

Pour pouvoir lire et modifier cette propriété depuis une instanciation de la classe, vous définirez les fonctions getFyeo() et setFyeo() comme ceci :

public function getFyeo(){
  return $this -> fyeo;
}
public setFyeo($nouveau){
  $this -> fyeo = $nouveau;
}

La fonction publique getFyeo() lit le contenu de la propriété private $fyeo et la retourne à l’appelant.

La fonction publique setFyeo() affecte la valeur qui lui est passée en paramètre à la propriété private $fyeo.


Les collections de type Set n’acceptent que des éléments différents (les doublons ne sont pas supportés). Si vous tentez d’ajouter un élément déjà présent dans une collection de type Set, une exception NullPointerException ou ClassCastException sera générée.

Plusieurs implémentations de collections de type Set existent : Hashset, Treeset et Linkedhashset. Voyons comment utiliser l’une d’entre elles.

Ici, nous définissons le HashSet unHashSet et nous lui ajoutons quelques objets. Remarquez l’objet Integer(15) qui est ajouté deux fois. L’iterator i est défini, puis la collection est parcourue avec une instruction while.

HashSet unHashSet=new HashSet();
unHashSet.add(new String("une chaîne"));
unHashSet.add(new Integer(15));
unHashSet.add(new Double(3.5));
unHashSet.add(new String("une autre chaîne"));
unHashSet.add(new Integer(15));
Iterator i=unHashSet.iterator();
while(i.hasNext()) {
  System.out.println(i.next());
}

 

Pour que ces instructions soient exécutables, vous devez importer trois bibliothèques :

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set

 

Voici le résultat. Remarquez que le deuxième objet Integer(15) n’est pas pris en compte :