Title: Br
1Brève étude de packagesenJAVA
Java 1.0.2 (1996) 212 classes, 8 packages. Java
1.1.5 (1997) 504 classes, 23 packages. Java 1.2
(1998) 1520 classes, 59 packages. Java 1.3
(2001) Java 1.4 (2002) 2757 classes, 135
packages. Java 1.5 (2005) 3278 classes, 165
packages.
2Package java.lang
Classe String
Des chaînes de caractères peuvent être définies
comme étant des objets de la classe String. Pour
déclarer un tel objet et éventuellement
linitialiser, on procède ainsi String A //
La variable A nest pas initialisée. String C
"chaine" Le contenu de C peut être changé C
"chaine de caracteres" En procédant ainsi, la
chaîne initiale est perdue. Puisque les
variables de type String sont des objets de la
classe String, nous pouvons créer des tableaux
dont les composantes sont de type
String String C new String10 String
Nom "Roy", "Dube", "Martin"
3Opérateurs
opérateur de concaténation String C
"Concatenation " String D 5 5 "
represente dix." String E C 5 5 "
represente cinquante cinq." opérateur
vérifiant si 2 variables réfèrent au même objet
String si ce nest pas le cas, même si les 2
chaînes de caractères sont identiques, le
résultat sera quand même false.
Ex.
String A "ouf" String B "ouf"
Puisque A et B sont initialisés à la même
constante et que le compilateur crée une seule
copie de cette constante, A est égale à B.
String C "P" A C A B "P" B
A et B réfèrent maintenant à des objets
différents par conséquent, A et B ne sont pas
égaux.
String U new String("ouf") String V new
String("ouf")
U et V réfèrent aussi à des objets différents.
4Méthodes
boolean equals(Object O) permet de tester si
les chaînes de caractères référées par
deux variables sont identiques ou
non. Ex. if(C.equals("chaine"))
System.out.println(C) boolean
equalsIgnoreCase(String S) Idem à equals à
lexception que lon ne distingue pas entre les
minuscules et les majuscules. int
compareTo(String S) permet de comparer les
chaînes de caractères référées par 2
variables Ex. if(C.compareTo(D) lt 0)
System.out.println("C lt D") if(C.compareTo(D)
0) System.out.println("C D") if(C.compare
To(D) gt 0) System.out.println("C gt D") int
compareToIgnoreCase(String S) Idem à compareTo
à lexception que lon ne distingue pas entre
les minuscules et les majuscules. boolean
startsWith(String S) ou encore boolean
startsWith(String S, int i) boolean
endsWith(String S) permet de tester si une
chaîne débute ou termine par la chaîne S.
5int length() Retourne la longueur de la chaîne
de caractères. Ex. System.out.println(C.length
()) char charAt(int i) Retourne un caractère
dont la position est passée en paramètre. Ex.
System.out.println(C.charAt(i)) String
toLowerCase() ou encore String toLowerCase(int
i) String toUpperCase() ou encore String
toUpperCase(int i) Retourne la chaîne de
caractères convertie en minuscules ou
majuscules selon le cas. String substring(int
i) ou encore String substring(int i, int
j) Retourne une copie de la sous-chaîne de
caractères en position i et les suivantes ou
encore, en position i, i1, i2, ,
j-1. Ex. String C "ampoule" String D
C.substring(2) // Renferme la chaîne
poule. String E C.substring(2, 5) //
Renferme la chaîne pou. Si les indices sont
hors de portée de la chaîne, une exception est
lancée, StringIndexOutOfBoundsException.
6int indexOf(char c) Retourne la position de la
1e occurrence du caractère c. Si une telle
occurrence nexiste pas, la valeur -1 est
retournée. int indexOf(char c, int i) Retourne
la position de la 1e occurrence du caractère c en
débutant la recherche à partir de la position i.
Si i se trouve à lextérieur des limites
de lobjet String ou encore, une telle
occurrence nexiste pas, la valeur -1
est retournée. int indexOf(String S) Retourne
la position de la 1e occurrence de la sous-chaîne
S. Si une telle occurrence nexiste pas, la
valeur -1 est retournée. int indexOf(String S,
int i) Retourne la position de la 1e
occurrence de la sous-chaîne S en débutant la
recherche à partir de la position i. Si i se
trouve à lextérieur des limites de lobjet
String ou encore, une telle occurrence nexiste
pas, la valeur -1 est retournée.
Note
Ces 4 méthodes ont un équivalent soit,
lastIndexOf où lon recherche la dernière
occurrence dune sous-chaîne.
7String replace(char a, char b) Retourne une
nouvelle chaîne de caractères issue de lancienne
où on a remplacé chaque occurrence de a par b.
La chaîne de caractères de départ nest pas
modifiée.
Ex. String Ancien_texte "Il y a des
espaces." String Nouveau_texte
Ancien_texte.replace(' ', '/')
On pourrait aussi écrire Ancien_texte
Ancien_texte.replace(' ', '/') ce qui
modifierait la chaîne de caractères de départ.
String trim() Retourne une nouvelle chaîne de
caractères issue de lancienne où on a enlevé
les espaces, les caractères de tabulation et les
sauts de ligne au début et à la fin de la chaîne
mais non à lintérieur de celle-ci. La chaîne de
caractères de départ nest pas modifiée.
Ex. String Texte " Il y a des espaces.
" String Resultat Texte.trim() //
Resultat contient "Il y a des espaces.".
8char toCharArray()
Retourne un tableau de type char renfermant la
chaîne de caractères.
Ex. String Texte "Il y a des espaces." char
tableau tableau Texte.toCharArray()
void getChars(int i, int j, char T, k)
Copie dans T à partir de la position k les
caractères en position i, i1, , j-1 de lobjet
courant de la classe String.
Ex. String Texte "Il y a des espaces." char
tableau new char3 Texte.getChars(9, 12,
tableau, 0)
String copyValueOf(char T) ou encore String
copyValueOf(char T, int i, int j)
Méthode statique pour créer un objet de type
String à partir du tableau T.
Ex. char Tab 'o', 'u', 'i', 'o', 'u', 'n',
'o', 'n' String texte String.copyValueOf(Tab)
// texte renferme la chaîne "ouiounon". String
doc String.copyValueOf(Tab, 3, 2) // doc
renferme la chaîne "ou".
9public static String valueOf(char c) ou public
static String valueOf(char t) ou public
static String valueOf(Object O) ou public static
String valueOf(int i) ou public static String
valueOf(byte b) ou public static String
valueOf(short s) ou public static String
valueOf(boolean b) ou public static String
valueOf(long l) ou public static String
valueOf(float f) ou public static String
valueOf(double d)
Méthode statique permettant de convertir tous les
types de données en String.
10Lecture dune chaîne au clavier
import java.io. public class essai public
static void main(String args) InputStreamRe
ader FichierEnEntree new InputStreamReader(Sy
stem.in) BufferedReader BlocDeMemoire new
BufferedReader(FichierEnEntree) String S
"" System.out.print("Entrez une chaine
\n\n") try S BlocDeMemoire.readLine()
catch (IOException IOException_Argument)
System.out.println(IOException_Argument.getMe
ssage()) System.out.print(S "\n")
11Classe StringBuffer
Les objets de la classe String ne peuvent être
modifiés toute opération crée une nouvelle
chaîne. Pour modifier le contenu dune chaîne de
caractères, vous devez plutôt utiliser la classe
StringBuffer à la place de la classe String.
StringBuffer(String S)
Ex. StringBuffer U new StringBuffer("Oh la
la!")
StringBuffer(int i)
Ex. StringBuffer V new StringBuffer(50)
V a comme capacité de ranger 50 caractères.
StringBuffer()
Ex. StringBuffer W new StringBuffer()
W a comme capacité de ranger 16 caractères
(valeur par défaut).
Note (i) À ce stade-ci, V et W sont
vides. (ii) On peut déclarer une variable
StringBuffer sans quelle soit initialisée
immédiatement StringBuffer X puis, X new
StringBuffer("Oh la la!") ou encore, X U //
X et U désignent le même objet.
12int length()
Retourne la longueur de la chaîne de caractères
de StringBuffer.
int capacity()
Retourne la capacité de la chaîne de caractères
de StringBuffer. Un objet de la classe
StringBuffer peut ou non renfermer une chaîne de
caractères si cest le cas, la longueur de la
chaîne peut être inférieure à la capacité de
lobjet. Lors de la déclaration dun objet, on
peut spécifier la capacité de stockage
StringBuffer S new StringBuffer(50) Si la
capacité nest pas spécifiée, lobjet aura une
capacité de 16 par défaut. Lorsque vous créez un
objet StringBuffer renfermant une chaîne de
caractères, la capacité est alors la longueur de
la chaîne 16.
void ensureCapacity(int i)
Permet de spécifier la capacité minimale dun
objet soit, max(i, 2 capacité courante 2).
13void setLength(int n)
Permet de modifier la longueur de la chaîne de
caractères. Si la longueur de la chaîne est
supérieure à n, la chaîne est tronquée. Si des
caractères doivent être ajoutés, ce sera le
caractère '\u0000'.
void append(String s) ou void append(char c) ou
void append(char a)
Permet dajouter a, c ou s à la fin de la chaîne.
void append(int i) ou void append(long j) ou
void append(float f) ou void append(double d)
Permet dajouter la représentation décimale de i,
j, f ou d à la fin de la chaîne.
Ex. StringBuffer x new StringBuffer("Le
nombre est ") long nombre
75 x.append(nombre) // Cela résulte en "Le
nombre est 75". x.append(12.35) // Cela
résulte en "Le nombre est 7512.35".
void append(boolean v)
Ex. StringBuffer x new StringBuffer("Le
resultat est ") boolean v
true x.append(v) // Cela résulte en "Le
resultat est true".
void append(char a, int i, int k)
Ajoute les k caractères de a à partir de la
position i.
Ex. char voyelles 'a', 'e', 'i', 'o',
'u', 'y' StringBuffer x new
StringBuffer("Les voyelles sont
") x.append(voyelles, 2, 3) // On ajoute "iou"
à x.
void append(Object O)
14String toString()
Permet de créer un objet String à partir dun
objet StringBuffer.
Ex. StringBuffer x new StringBuffer("Le
nombre est 13") String y x.toString()
void insert(int i, String s) ou void insert(int
i, char c) ou void insert(int i, char a)
Permet dinsérer a, c ou s à partir de la
position i de la chaîne.
void insert(int i, int j) ou void insert(int i,
long l) ou void insert(int i, float f) ou void
insert (int i, double d)
Ajoute la représentation décimale de j, l, f ou d
à partir de la position i de la chaîne.
void insert(int i, boolean b)
Ajoute la chaîne "true" ou "false" à partir de la
position i de lobjet courant.
charAt et getChars sont aussi disponibles de la
même façon que la classe String.
void setCharAt(int i, char c)
Remplace le caractère en position i par le
caractère c.
void reverse()
Inverse la chaîne de caractères.
15public void deleteCharAt(int i)
Enlève le caractère en position i de la chaîne
courante.
public void delete (int i, int j)
Enlève les caractères en position i, i1, i2, ,
j-1 de la chaîne courante.
16Classe StringTokenizer
Permet de découper des chaînes de caractères en
sous-chaînes de caractères à partir de
délimiteurs. Pour définir de tels objets, ajouter
import java.util. au début du programme.
Constructeurs
public StringTokenizer(String s)
Une instance de cette classe est définie à laide
de la chaîne à découper s et du délimiteur par
défaut, lespace.
public StringTokenizer(String s, String
delimitateurs)
Une instance de cette classe est définie à laide
de la chaîne à découper s et des délimiteurs
à lintérieur de la chaîne delimiteurs .
public StringTokenizer(String s, String
delimitateurs, boolean v)
Une instance de cette classe est définie à laide
de la chaîne à découper s et des délimiteurs
à lintérieur de la chaîne delimiteurs . Si le
dernier paramètre v est true, les délimiteurs
sont aussi retournés comme sous-chaînes de
caractères.
17Méthodes
public int countTokens()
Retourne le nombre de sous-chaînes de caractères
qui restent à parcourir.
import java.util. public class essai public
static void main(String args) StringTokeniz
er s s new StringTokenizer("Ceci est un
exemple.", " ", true) System.out.println(s.coun
tTokens())
7
Note s new StringTokenizer("Ceci est un
exemple.")
Le programme afficherait plutôt la valeur 4.
18public boolean hasMoreTokens()
Retourne true sil reste des sous-chaînes de
caractères.
public String nextToken()
public String nextToken(String delimitateurs)
Retourne la sous-chaîne de caractères suivante.
- Ceci
- est
- un
- exemple
- oui
- en
- effet.
import java.util. public class essai public
static void main(String args) StringTokeniz
er s s new StringTokenizer("Ceci est un
exemple oui, en effet.", " ,") int n
s.countTokens() while(s.hasMoreTokens())
System.out.println((n - s.countTokens() 1) "
" s.nextToken())
19Package java.util
Interface Enumeration
Permet ditérer à travers les éléments dun
ensemble comme par exemple dans un vecteur
(vector). Linterface Enumeration renferme 2
méthodes seulement boolean hasMoreElements()
Retourne true si le parcours des éléments est
terminé false autrement. Object nextElement()
throws NoSuchElementException Retourne lobjet
suivant de type Object ou déclenche
une exception si le dernier élément a déjà été
énuméré.
20Exemple
class CollectionChainesDeCaracteres String
tabChaines // Collection de chaînes de
caractères. int nbreChaines 0 // Nombre de
chaînes de caractères dans la collection. //
Constructeur d'une collection vide avec une
possibilité de "max" chaînes. // Pré - max gt
0. public CollectionChainesDeCaracteres(int
max) tabChaines new String max
// Permet d'ajouter une chaîne à la
collection. // Pré - Le nombre de chaînes dans
la collection est moindre que max. public
void ajouterChaine (String chaine)
tabChaines nbreChaines chaine //
Retourne un objet de la classe EnumerationChaines
qui permettra de parcourir // cette
collection. public Enumeration chaines()
return new EnumerationChaines (this)
21// Classe dérivée de la classe Enumeration
permettant de parcourir une collection. class
EnumerationChaines implements Enumeration priva
te CollectionChainesDeCaracteres collection //
Collection à parcourir. private int indice
0 // de chaînes de caractères parcourues. //
Constructeur qui définit la collection à
parcourir. // Aucun élément de la collection n'a
encore été parcouru. public EnumerationChaines
(CollectionChainesDeCaracteres collection)
this.collection collection //
Retourne true si le parcours n'est pas terminé.
False autrement. public boolean
hasMoreElements() return indice lt
collection.nbreChaines // Retourne la
prochaine chaîne de caractères de la
collection. // Pré - Le parcours n'est pas
terminé. public Object nextElement()
if (indice lt collection.nbreChaines)
return collection.tabChaines indice
else throw new NoSuchElementException ()
22public class EnumerationCollection public
static void main (String args) //
Création d'une collection de chaînes et ajout de
3 chaînes. CollectionChainesDeCaracteres
donnees new CollectionChainesDeCaracteres
(10) donnees.ajouterChaine ("Tic")
donnees.ajouterChaine ("Tac")
donnees.ajouterChaine ("Toc") //
Enumération des éléments de la collection.
Enumeration enumeration donnees.chaines()
while (enumeration.hasMoreElements())
System.out.println (enumeration.nextElement())
23Interface Vector
À la manière dun tableau, cette classe permet de
définir un ensemble déléments de type Object.
Contrairement à un tableau, un objet de type
Vector peut renfermer autant déléments que
nécessaire. De plus, chaque élément peut être de
nimporte quel type cela signifie que vous devez
avoir un moyen didentifier le type de lélément
auquel vous accédez.
Constructeurs
Vector V new Vector() Vecteur vide avec une
capacité initiale fixée par défaut. Cette
capacité augmentera lorsquon tente dajouter un
objet au vecteur déjà plein. Vector V new
Vector(100) Vecteur vide avec une capacité
initiale fixée à 100. Vector V new Vector(100,
10) Dans les 2 cas précédents, lorsque le
vecteur est plein, sa capacité est doublée ce qui
peut être très inefficace. Une autre approche
consiste à fixer le déléments que lon doit
ajouter lorsque le vecteur est plein.
24On a aussi des méthodes liées à lespace occupé
par un vecteur int capacity() Retourne le
maximum dobjets quun vecteur peut
renfermer. Dans le dernier exemple,
System.out.println(V.capacity()) peut afficher
100, ou 110, ou 120, int size() Retourne le
nombre dobjets quun vecteur renferme. void
ensureCapacity(int n) Fixe la capacité minimale à
n. Si la capacité est moindre que n, elle sera
augmentée à n autrement, cela demeure inchangé
. void setSize(int n) On peut augmenter le
nombre dobjets dans un vecteur en ajoutant un
objet. Autrement, cette méthode nous
permet daugmenter ou de réduire le nombre
dobjets. Si le nombre dobjets du vecteur est
moindre que n, la différence est ajoutée avec
des références null. Si le dobjets du vecteur
est supérieur à n, les objets supplémentaires
sont retirés. Les objets retirés sont
toujours disponibles en autant quil existe
dautres chemins daccès à ces objets. void
trimToSize() Pour économiser de la mémoire, la
capacité est fixée au dobjets du vecteur.
Lajout dobjets est toujours possible par la
suite.
25Stockage dobjets dans un vecteur
Pour ranger des objets dans un vecteur, nous
avons public final void addElement(Object
O) O est rangé en dernière position du vecteur
et la taille de celui-ci est augmentée de 1. Si
le vecteur est trop petit, il est
agrandi. Ex. V.addElement(composante_de_V)
public final void insertElementAt(Object O, int
indice) throws IndexOutOfBoundsException O
est rangé en position indice du vecteur et la
taille de celui-ci est augmentée de 1. Si le
vecteur est trop petit, il est agrandi. Notez que
la position de la 1ière composante est 0. Si la
valeur de indice est plus grande que la
taille du vecteur, une exception est
lancée. Ex. V.insertElementAt(composante_de_V
, 2) Les éléments en position 2 et les
suivantes sont déplacés dune position vers la
droite et le nouvel élément est rangé en
position 2.
26public final void setElementAt(Object O, int
indice) throws IndexOutOfBoundsException Pe
rmet de modifier lélément en position indice
à partir de O. Si la valeur de indice est
négative ou plus grande ou égale à la taille du
vecteur, une exception est lancée. Ex.
V.setElementAt(composante_de_V, 2) La
troisième composante est modifiée.
27Accès aux objets dans un vecteur
Pour accéder aux objets dun vecteur, on procède
comme suit public final Object firstElement()
throws NoSuchElementException Retourne le
premier élément inséré dans le vecteur. Ex.
type_de_composante C (type_de_composante)V.f
irstElement() public final Object lastElement()
throws NoSuchElementException Retourne le
dernier élément inséré dans le vecteur. Ex.
type_de_composante C (type_de_composante)V.l
astElement() public final Object elementAt(int
indice) throws IndexOutOfBoundsException Retou
rne lélément en position indice du
vecteur. Ex. type_de_composante C
(type_de_composante)V.elementAt(2)
28Parcours des éléments dun vecteur
public final Enumeration elements()
Permet de parcourir les éléments du vecteur à
laide dun objet de la classe Enumeration.
Ex. Enumeration Les_composantes_de_V
V.elements()
La méthode elements() retourne un objet de la
classe Enumeration permettant de parcourir les
éléments du vecteur V. On peut alors traiter
chaque élément lun à la suite de
lautre while (Les_composantes_de_V.hasMoreElem
ents()) type_de_composante C
(type_de_composante) Les_composantes_de_V.nextEl
ement() // Traitement de C.
29Extraction déléments dun vecteur
public final void copyInto(Object array T)
throws IndexOutOfBoundsException
Recopie dans T lensemble des éléments du
vecteur. Si T est trop petit, une exception est
lancée.
Ex. Object donnee new ObjectV.size() V.c
opyInto(donnee)
public final void removeElementAt(int indice)
throws IndexOutOfBoundsException
public final boolean removeElement(Object O)
public final void removeAllElements()
Ces méthodes permettent de retirer du vecteur,
soit lélément en position indice, soit lélément
O ou tous les éléments du vecteur. Les deux
premières méthodes impliquent un décalage des
éléments qui suivent lélément retiré à un indice
inférieur.
Note
Enlever un élément dun vecteur ne signifie pas
uniquement le remplacer par une référence null
mais bien lextraire du vecteur.
30Recherche dun élément dans un vecteur
public final boolean isEmpty() Retourne true
si le vecteur est vide. False autrement. public
final int indexOf(Object O) public final int
indexOf(Object O, int indice) throws
IndexOutOfBoundsException public final int
lastIndexOf(Object O) public final int
lastIndexOf(Object O, int indice) throws
IndexOutOfBoundsException
Ces méthodes retournent lindice de la première
ou dernière occurrence de lélément O ou -1 si O
nest pas trouvé. La méthode equals de la
classe de O est utilisée pour comparer
les objets. Le paramètre indice permet de
spécifier lindice à partir duquel nous devons
commencer la recherche.
public final boolean contains(Object
O) Retourne true si le vecteur contient un
élément égal à O. False autrement. equals
de la classe de O est utilisée pour comparer les
objets.
31Cloner un vecteur
public Object clone() Retourne un clone du
vecteur par contre, les éléments du vecteur ne
sont pas clonés eux-mêmes.
32Interface Stack
Java implante la structure de données pile en
construisant une classe Stack dérivée de la
classe Vector. Object push(Object O) Place sur
le haut de la pile une référence à lobjet
O. Object pop() Enlève la référence à lobjet du
dessus de la pile et retourne cette référence
comme une valeur de type Object. Object
peek() Permet de retourner la référence à
lobjet du dessus de la pile comme une valeur
de type Object sans lenlever de la pile. int
search(Object O) Retourne la position (de type
int) dans la pile de lobjet référencé O où 1
est la position de lélément sur le dessus de
la pile, 2 lélément suivant, et ainsi de suite.
Si lobjet ne fait pas partie de la pile, la
valeur -1 est retournée. boolean
empty() Retourne true si la pile est vide false
autrement. stack() Il existe un seul
constructeur, le premier constructeur de type
vector. Ex. Stack P new Stack()
33Hashtable
Permet de représenter un ensemble dobjets
quelconques dans une table de hashing .
34Permet de communiquer un changement intervenu
dans un objet dune classe à des objets dautres
classes.
La classe Observable et linterface Observer
import java.util. class Membre extends
Observable private String nom private int
intervention 0 public Membre(String
Nom) nom Nom public void
echange() intervention 1 setChanged()
notifyObservers() public String
AccesNom() return nom public int
Nombre_d_interventions() return
intervention
Les objets de la classe Membre peuvent être
observés.
Un objet observé de la classe Membre peut
prévenir tous ses observateurs dun changement en
appelant automatiquement la méthode update() de
chacun deux.
Quand un objet observé appelle la
méthode notifyObservers() à la suite dun
changement, chacun de ses observateurs voit sa
méthode update() appelée. notifyObservers() a un
effet seulement si lobjet observé a changé suite
à un appel à la méthode setChanged().
35class President implements Observer private
String nom public President(String
Nom) nom Nom public void
update(Observable m, Object O) System.out.pri
ntln(nom " signale la "
((Membre)m).Nombre_d_interventions() " ieme
intervention de " ((Membre)m).AccesNom()
".")
update est appelée lorsquun objet observé est
modifié.
En créant un objet de la classe President dérivée
de Observer, on peut instancier un observateur.
36public class Classe_Observable public static
void main(String args) Membre M1 new
Membre("Joe") Membre M2 new
Membre("Lucie") Membre M3 new
Membre("Pierre") Membre M4 new
Membre("Suzanne") Membre M5 new
Membre("Yves") President P new
President("Bush") M1.addObserver(P) M2.addO
bserver(P) M3.addObserver(P) M4.addObserver(
P) M5.addObserver(P) M2.echange() M4.ech
ange() M2.echange()
Ajoute un observateur P à une personne observée,
soit M1, M2, M3, M4, M5. Chaque personne observée
conserve les personnes qui lobservent.
Effectue un changement aux membres observés M2 et
M4 et avise leurs observateurs (dans ce cas-ci,
il sagit de P).
37Constructeur de la classe Observable
Observable() crée un objet qui ne renferme pas
dobjets de la classe Observer.
Méthodes de la classe Observable
addObserver(Observer o) ajoute un objet de la
classe Observer au sein de lensemble
des observateurs de lobjet Observable, en
vérifiant quil nexiste pas déjà dans
lensemble.
void deleteObserver(Observer o) supprime un
objet de la classe Observer correspondant à
lobjet passé en paramètre, appartenant à la
structure renfermant les observateurs.
void deleteObservers() supprime tous les objets
de la classe Observer appartenant à la
structure renfermant les observateurs.
int countObservers() retourne le nombre
dobjets de type Observer renfermés dans
lobjet Observable.
38protected void setChanged() Marque lobjet
Observable comme ayant changé, la méthode
hasChanged retournerait true maintenant. Doit
être appelé avant lappel à notifyObservers.
boolean hasChanged() Retourne true si un objet
a été modifié false autrement.
protected void clearChanged() Marque lobjet
Observable comme nayant pas changé ou que
lensemble de ses observateurs ont été avisés de
sa plus récente modification. Ainsi, la méthode
hasChanged() retournerait maintenant false.
void notifyObservers(Object arg) Lorsque
lobjet Observable a été modifié, comme indiqué
par la méthode hasChanged(), lensemble de ses
observateurs sont avisés en appelant la méthode
update avec arg comme 2ième argument et la
méthode clearChanged() est appelée pour indiquer
que cet objet na plus changé depuis le dernier
appel de méthode.
void notifyObservers() Idem à la méthode
précédente à lexception que arg est null.
39La classe Random
Donne accès à un générateur de valeurs
pseudo-aléatoires plus sophistiqué que celui
fourni par la méthode Math.random().
On doit importer java.util.Random.
Chaque objet de cette classe est un générateur de
valeurs pseudo-aléatoires indépendant. Ces
valeurs aléatoires peuvent être de type int,
long, float ou double.
À chaque objet de cette classe est associé une
souche qui caractérise de manière unique une
suite de valeurs pseudo-aléatoires.
Type des valeurs générées
Distribution de probabilités
Chaque valeur de type int a même probabilité
dêtre choisi i.e. 1 nombre de valeurs
possibles du type int
int
Loi Uniforme 0, 1.
long, float
double
Loi Normale 0, 1.
40Constructeurs
Constructeur par défaut utilise le temps
courant de lhorloge comme souche.
Random loterie new Random()
Cette séquence de valeurs pseudo-aléatoires nest
pas reproductible.
Constructeur avec une souche en entrée
Random montant new Random(997L)
Cette séquence de valeurs pseudo-aléatoires est
reproductible.
Note
Seuil de précision pour lhorloge la
milliseconde.
41Méthodes publiques de la classe Random
public int nextInt() Retourne une valeur
pseudo-aléatoire de type int.
public long nextLong() Retourne une valeur
pseudo-aléatoire de type long.
public float nextFloat() Retourne une valeur
pseudo-aléatoire de type float.
public double nextDouble() Retourne une valeur
pseudo-aléatoire de type double selon une loi
uniforme U0, 1.
public double nextGaussian() Retourne une
valeur pseudo-aléatoire de type double selon
une loi normale N(0, 1).
public void setSeed(long seed) Modifie la
souche de départ du générateur de valeurs
pseudo-aléatoires.
42La classe Date
Permet dobtenir la date du jour, le temps à
lhorloge et de manipuler ces données.
Un objet de la classe Date renferme une date et
un temps à lhorloge.
Constructeurs
Date()
Lobjet créé est initialisé à linstant courant à
la milliseconde près.
Date(long t)
Lobjet créé est initialisé à linstant suivant à
la milliseconde près Mercredi 31 déc. 190000
EST 1969 t millisecondes.
À compléter
43Méthodes de comparaison dobjets de la classe
Date
after(Date tot)
Retourne true si lobjet courant arrive plus tard
que lobjet tot, false autrement.
before(Date tard)
Retourne true si lobjet courant arrive plus tôt
que lobjet tard, false autrement.
equals(Object O)
Retourne true si lobjet courant et O
représentent la même date et le même temps même
si ce sont des objets différents, false autrement.
44Classe DateFormat
Classe abstraite définie dans le package
java.text permettant de représenter le contenu
dun objet de la classe Date à partir dun objet
de la classe String.
Constantes
Format Valeur Description
SHORT
Le format est du type 2/2/97 ou 415am.
3
MEDIUM
Le format est du type 5-Dec-97.
2
LONG
Le format est du type December 5, 1997.
1
FULL
Le format est du type Friday, December 5, 1997 AD
ou 44552 PST où PST désigne le Pacific
Standard Time .
0
Note Ces représentations changeront dun pays
à lautre afin de respecter les conventions en
vigueur.
import java.util. import java.text. public
class ClasseDate public static void
main(String args) System.out.println(DateForm
at.FULL)
0
45Méthodes statiques
getTimeInstance Prend en entrée 2 paramètres (i)
le format utilisé pour désigner le temps, (ii)
le format propre à un pays.
import java.util. import java.text. public
class ClasseDate public static void
main(String args) Date D new
Date() DateFormat F DateFormat.getTimeInstanc
e (DateFormat.FULL, Locale.CANADA) String
form F.format(D) System.out.println(form)
35836 oclock PM EST
Note Locale est une classe renfermant des
constantes désignant le format de la date ou du
temps propre à un pays.
46getDateInstance Prend en entrée 2 paramètres (i)
le format utilisé pour désigner la date, (ii)
le format propre à un pays.
import java.util. import java.text. public
class ClasseDate public static void
main(String args) Date D new
Date() DateFormat F DateFormat.getDateInstanc
e (DateFormat.FULL, Locale.CANADA) String
form F.format(D) System.out.println(form)
Tuesday, January 15, 2008
etc.