La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Brève étude de packages en JAVA Java 1.0.2 (1996) : 212 classes, 8 packages. Java 1.1.5 (1997) : 504 classes, 23 packages. Java 1.2 (1998) : 1520 classes,

Présentations similaires


Présentation au sujet: "Brève étude de packages en JAVA Java 1.0.2 (1996) : 212 classes, 8 packages. Java 1.1.5 (1997) : 504 classes, 23 packages. Java 1.2 (1998) : 1520 classes,"— Transcription de la présentation:

1 Brève étude de packages en JAVA 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.

2 2 Package 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 l’initialiser, on procède ainsi : String A;// La variable A n’est 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 String[10]; String[] Nom ={ "Roy","Dube","Martin"};

3 3 Opé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 n’est 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.

4 4 Mé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 à l’exception que l’on 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) < 0) System.out.println("C < D"); if(C.compareTo(D) == 0) System.out.println("C = D"); if(C.compareTo(D) > 0) System.out.println("C > D"); int compareToIgnoreCase(String S); Idem à compareTo à l’exception que l’on 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.

5 5 int 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, i+1, i+2, …, 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.

6 6 int indexOf(char c); Retourne la position de la 1e occurrence du caractère c. Si une telle occurrence n’existe 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 à l’extérieur des limites de l’objet String ou encore, une telle occurrence n’existe 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 n’existe 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 à l’extérieur des limites de l’objet String ou encore, une telle occurrence n’existe pas, la valeur -1 est retournée. Note : Ces 4 méthodes ont un équivalent soit, lastIndexOf où l’on recherche la dernière occurrence d’une sous-chaîne.

7 7 String replace(char a, char b); Retourne une nouvelle chaîne de caractères issue de l’ancienne où on a remplacé chaque occurrence de a par b. La chaîne de caractères de départ n’est 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 l’ancienne 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 à l’intérieur de celle-ci. La chaîne de caractères de départ n’est pas modifiée. Ex.:String Texte = " Il y a des espaces. "; String Resultat = Texte.trim(); // Resultat contient "Il y a des espaces.".

8 8 char [] 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, i+1, …, j-1 de l’objet courant de la classe String. Ex.:String Texte = "Il y a des espaces."; char [] tableau = new char[3]; 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".

9 9 public 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.

10 10 import java.io.*; public class essai { public static void main(String[] args) { InputStreamReader FichierEnEntree = new InputStreamReader(System.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.getMessage()); } System.out.print(S + "\n"); } Lecture d’une chaîne au clavier :

11 11 Les objets de la classe String ne peuvent être modifiés; toute opération crée une nouvelle chaîne. Pour modifier le contenu d’une 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 qu’elle 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. Classe StringBuffer

12 12 int 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 c’est le cas, la longueur de la chaîne peut être inférieure à la capacité de l’objet. Lors de la déclaration d’un objet, on peut spécifier la capacité de stockage : StringBuffer S = new StringBuffer(50); Si la capacité n’est pas spécifiée, l’objet 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 d’un objet soit, max(i, 2 * capacité courante + 2).

13 13 void 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 d’ajouter 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 d’ajouter 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); 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. Ajoute les k caractères de a à partir de la position i. void append(Object O);

14 14 String toString(); Permet de créer un objet String à partir d’un 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 d’insé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 l’objet 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.

15 15 public 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, i+1, i+2, …, j-1 de la chaîne courante.

16 16 Classe 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 à l’aide de la chaîne à découper s et du délimiteur par défaut, l’espace. public StringTokenizer(String s, String delimitateurs); Une instance de cette classe est définie à l’aide de la chaîne à découper « s » et des délimiteurs à l’intérieur de la chaîne « delimiteurs ». public StringTokenizer(String s, String delimitateurs, boolean v); Une instance de cette classe est définie à l’aide de la chaîne à découper « s » et des délimiteurs à l’inté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.

17 17 Méthodes : public int countTokens(); import java.util.*; public class essai { public static void main(String[] args) { StringTokenizer s; s = new StringTokenizer("Ceci est un exemple.", " ", true); System.out.println(s.countTokens()); } 7 Note : s = new StringTokenizer("Ceci est un exemple."); Le programme afficherait plutôt la valeur 4. Retourne le nombre de sous-chaînes de caractères qui restent à parcourir.

18 18 public boolean hasMoreTokens(); Retourne true s’il reste des sous-chaînes de caractères. public String nextToken(); Retourne la sous-chaîne de caractères suivante. public String nextToken(String delimitateurs); import java.util.*; public class essai { public static void main(String[] args) { StringTokenizer 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()); } 1Ceci 2est 3un 4exemple 5oui 6en 7effet.

19 19 Interface Enumeration Permet d’itérer à travers les éléments d’un ensemble comme par exemple dans un vecteur (vector). L’interface 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 l’objet suivant de type Object ou déclenche une exception si le dernier élément a déjà été énuméré. Package java.util

20 20 Exemple : 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 > 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 21 // Classe dérivée de la classe Enumeration permettant de parcourir une collection. class EnumerationChaines implements Enumeration { private 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 < 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 < collection.nbreChaines) return collection.tabChaines [indice++]; else throw new NoSuchElementException (); }

22 22 public 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()); }

23 23 Interface Vector À la manière d’un 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 n’importe quel type; cela signifie que vous devez avoir un moyen d’identifier le type de l’élément auquel vous accédez. Vector V = new Vector(); Vecteur vide avec une capacité initiale fixée par défaut. Cette capacité augmentera lorsqu’on tente d’ajouter 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 l’on doit ajouter lorsque le vecteur est plein. Constructeurs :

24 24 On a aussi des méthodes liées à l’espace occupé par un vecteur : int capacity()Retourne le # maximum d’objets qu’un vecteur peut renfermer. Dans le dernier exemple, System.out.println(V.capacity()); peut afficher 100, ou 110, ou 120, … int size()Retourne le nombre d’objets qu’un 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 d’objets dans un vecteur en ajoutant un objet. Autrement, cette méthode nous permet d’augmenter ou de réduire le nombre d’objets. Si le nombre d’objets du vecteur est moindre que n, la différence est ajoutée avec des références null. Si le # d’objets du vecteur est supérieur à n, les objets supplémentaires sont retirés. Les objets retirés sont toujours disponibles en autant qu’il existe d’autres chemins d’accès à ces objets. void trimToSize()Pour économiser de la mémoire, la capacité est fixée au # d’objets du vecteur. L’ajout d’objets est toujours possible par la suite.

25 25 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 1 iè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 d’une position vers la droite et le nouvel élément est rangé en position 2. Stockage d’objets dans un vecteur :

26 26 public final void setElementAt(Object O, int indice) throws IndexOutOfBoundsException; Permet 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.

27 27 Pour accéder aux objets d’un 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.firstElement(); 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.lastElement(); public final Object elementAt(int indice) throws IndexOutOfBoundsException; Retourne l’élément en position « indice » du vecteur. Ex. : type_de_composante C = (type_de_composante)V.elementAt(2); Accès aux objets dans un vecteur :

28 28 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 l’un à la suite de l’autre : while (Les_composantes_de_V.hasMoreElements()) { type_de_composante C = (type_de_composante) Les_composantes_de_V.nextElement(); // Traitement de C. } Parcours des éléments d’un vecteur : public final Enumeration elements(); Permet de parcourir les éléments du vecteur à l’aide d’un objet de la classe Enumeration. Ex. : Enumeration Les_composantes_de_V = V.elements();

29 29 Extraction d’éléments d’un vecteur : public final void copyInto(Object array [] T) throws IndexOutOfBoundsException; Recopie dans T l’ensemble des éléments du vecteur. Si T est trop petit, une exception est lancée. Ex. :Object[] donnee = new Object[V.size()]; V.copyInto(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 d’un vecteur ne signifie pas uniquement le remplacer par une référence null mais bien l’extraire du vecteur.

30 30 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; Recherche d’un élément dans un vecteur : Ces méthodes retournent l’indice de la première ou dernière occurrence de l’élément O ou -1 si O n’est 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 l’indice à 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.

31 31 public Object clone(); Retourne un clone du vecteur; par contre, les éléments du vecteur ne sont pas clonés eux-mêmes. Cloner un vecteur :

32 32 Interface 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 à l’objet O. Object pop()Enlève la référence à l’objet 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 à l’objet du dessus de la pile comme une valeur de type Object sans l’enlever de la pile. int search(Object O) Retourne la position (de type int) dans la pile de l’objet 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 l’objet 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();

33 33 Hashtable Permet de représenter un ensemble d’objets quelconques dans une table de « hashing ».

34 34 La classe Observable et l’interface Observer Un objet observé de la classe Membre peut prévenir tous ses observateurs d’un changement en appelant automatiquement la méthode update() de chacun d’eux. 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; } Permet de communiquer un changement intervenu dans un objet d’une classe à des objets d’autres classes. Quand un objet observé appelle la méthode notifyObservers() à la suite d’un changement, chacun de ses observateurs voit sa méthode update() appelée. notifyObservers() a un effet seulement si l’objet observé a changé suite à un appel à la méthode setChanged(). Les objets de la classe Membre peuvent être observés.

35 35 class President implements Observer { private String nom; public President(String Nom) { nom = Nom; } public void update(Observable m, Object O) { System.out.println(nom + " signale la " + ((Membre)m).Nombre_d_interventions() + " ieme intervention de " + ((Membre)m).AccesNom() + "."); } En créant un objet de la classe President dérivée de Observer, on peut instancier un observateur. update est appelée lorsqu’un objet observé est modifié.

36 36 public 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.addObserver(P); M3.addObserver(P); M4.addObserver(P); M5.addObserver(P); M2.echange(); M4.echange(); M2.echange(); } Ajoute un observateur P à une personne observée, soit M1, M2, M3, M4, M5. Chaque personne observée conserve les personnes qui l’observent. Effectue un changement aux membres observés M2 et M4 et avise leurs observateurs (dans ce cas-ci, il s’agit de P).

37 37 Constructeur de la classe Observable Méthodes de la classe Observable Observable() crée un objet qui ne renferme pas d’objets de la classe Observer. addObserver(Observer o) ajoute un objet de la classe Observer au sein de l’ensemble des observateurs de l’objet Observable, en vérifiant qu’il n’existe pas déjà dans l’ensemble. void deleteObserver(Observer o) supprime un objet de la classe Observer correspondant à l’objet 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 d’objets de type Observer renfermés dans l’objet Observable.

38 38 protected void setChanged() Marque l’objet Observable comme ayant changé, la méthode hasChanged retournerait true maintenant. Doit être appelé avant l’appel à notifyObservers. boolean hasChanged() Retourne true si un objet a été modifié; false autrement. protected void clearChanged() Marque l’objet Observable comme n’ayant pas changé ou que l’ensemble 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 l’objet Observable a été modifié, comme indiqué par la méthode hasChanged(), l’ensemble de ses observateurs sont avisés en appelant la méthode update avec arg comme 2 ième argument et la méthode clearChanged() est appelée pour indiquer que cet objet n’a plus changé depuis le dernier appel de méthode. void notifyObservers() Idem à la méthode précédente à l’exception que arg est null.

39 39 La 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(). 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 int Chaque valeur de type int a même probabilité d’être choisi i.e. 1 nombre de valeurs possibles du type int long, float Loi Uniforme [0, 1]. double Loi Normale [0, 1]. On doit importer java.util.Random.

40 40 Constructeurs : Constructeur par défaut : utilise le temps courant de l’horloge comme souche. Random loterie = new Random(); Cette séquence de valeurs pseudo-aléatoires n’est 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 l’horloge : la milliseconde.

41 41 Mé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 U[0, 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.

42 42 La classe Date Permet d’obtenir la date du jour, le temps à l’horloge et de manipuler ces données. Un objet de la classe Date renferme une date et un temps à l’horloge. Constructeurs : Date()L’objet créé est initialisé à l’instant courant à la milliseconde près. Date(long t) L’objet créé est initialisé à l’instant suivant à la milliseconde près : Mercredi 31 déc. 19:00:00 EST 1969 + t millisecondes. À compléter …

43 43 Méthodes de comparaison d’objets de la classe Date : after(Date tot)Retourne true si l’objet courant arrive plus tard que l’objet tot, false autrement. before(Date tard)Retourne true si l’objet courant arrive plus tôt que l’objet tard, false autrement. equals(Object O)Retourne true si l’objet 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.

44 44 Classe DateFormat : Classe abstraite définie dans le package java.text permettant de représenter le contenu d’un objet de la classe Date à partir d’un objet de la classe String. Constantes : SHORTLe format est du type 2/2/97 ou 4:15am. FormatValeurDescription 3 MEDIUMLe format est du type 5-Dec-97. 2 LONGLe format est du type December 5, 1997. 1 FULLLe format est du type Friday, December 5, 1997 AD ou 4:45:52 PST où PST désigne le « Pacific Standard Time ». 0 Note : Ces représentations changeront d’un pays à l’autre 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(DateFormat.FULL); } 0

45 45 Méthodes statiques : import java.util.*; import java.text.*; public class ClasseDate { public static void main(String[] args) { Date D = new Date(); DateFormat F = DateFormat.getTimeInstance (DateFormat.FULL, Locale.CANADA); String form = F.format(D); System.out.println(form); } 3:58:36 o’clock PM EST getTimeInstancePrend en entrée 2 paramètres: (i) le format utilisé pour désigner le temps, (ii) le format propre à un pays. Note :Locale est une classe renfermant des constantes désignant le format de la date ou du temps propre à un pays.

46 46 import java.util.*; import java.text.*; public class ClasseDate { public static void main(String[] args) { Date D = new Date(); DateFormat F = DateFormat.getDateInstance (DateFormat.FULL, Locale.CANADA); String form = F.format(D); System.out.println(form); } Tuesday, January 15, 2008 getDateInstancePrend en entrée 2 paramètres: (i) le format utilisé pour désigner la date, (ii) le format propre à un pays. etc.


Télécharger ppt "Brève étude de packages en JAVA Java 1.0.2 (1996) : 212 classes, 8 packages. Java 1.1.5 (1997) : 504 classes, 23 packages. Java 1.2 (1998) : 1520 classes,"

Présentations similaires


Annonces Google