2. Chapitre 7 : Les Classes de bases de JAVA
Sommaire
Les classes dans le package java.lang : .................................................................................................... 3
Comme nous l’avons déjà dit ces classes sont l’ensemble des classes de base importées
automatiquement par le compilateur. ............................................................................................ 3
La classe Object : ................................................................................................................................. 3
La méthode getClass() : ................................................................................................................... 3
La méthode toString() : ................................................................................................................... 3
La classe String : ...................................................................................................................................... 4
La classe StringBuffer : ............................................................................................................................ 5
La classe System : .................................................................................................................................... 6
Les flux d'entrée/sortie standard : ...................................................................................................... 6
La classe Integer : ................................................................................................................................... 7
La classe Math ......................................................................................................................................... 8
La classe Runtime : .................................................................................................................................. 8
Les classes du package java.util :............................................................................................................. 9
La classe StringTokenizer :....................................................................................................................... 9
La classe Random : ................................................................................................................................ 10
La classe Date : ...................................................................................................................................... 10
2
Riadh BOUHOUCHI
3. Chapitre 7 : Les Classes de bases de JAVA
Dans cette partie on se propose de présenter quelques classes de base en JAVA fournies avec
la machine virtuelle.
Les classes dans le package java.lang :
Comme nous l’avons déjà dit ces classes sont l’ensemble des classes de base importées
automatiquement par le compilateur.
La classe Object :
C'est la super classe de toutes les classes Java : toutes ces méthodes sont donc héritées par
toutes les classes.
La méthode getClass() :
La méthode getClass() renvoie un objet de la classe Class qui représente la classe de l'objet.
Avec cet exemple on peut connaitre le nom d’une classe :
String nomClasse = monObject.getClass().getName();
La méthode toString() :
La méthode toString() de la classe Object renvoie le nom de la classe , suivi du séparateur @,
lui même suivi par la valeur de hachage de l'objet.
La méthode equals() :
La méthode equals() implémente une comparaison par défaut. Sa définition dans Object
compare les références : donc obj1.equals(obj2) ne renverra true que si obj1 et obj2 désignent
le même objet. Dans une sous classe de Object, pour laquelle on a besoin de pouvoir dire que
deux objets distincts peuvent être égaux.
La méthode clone() :
Si x désigne un objet obj1, l'exécution de x.clone() renvoie un second objet obj2, qui est une
copie de obj1 : si obj1 est ensuite modifié, obj2 n'est pas affecté par ce changement.
3
Riadh BOUHOUCHI
4. Chapitre 7 : Les Classes de bases de JAVA
La classe String :
Une chaîne de caractères est contenue dans un objet de la classe String
On peut initialiser une variable String sans appeler explicitement un constructeur : le
compilateur se charge de créer un objet.
Voici un exemple de déclaration :
String Chaine = "bonjour";
String Chaine = new String("bonjour");
Voici un exemple de comparaison entre deux chaines en utilisant la méthode equals :
String chaine = "bonjour";
String chaine1 = "bonjour";
String chaine1 = "bonjour1";
if(chaine.equals(chaine1))//cette instruction permet de
//comparer le contenu des deux chaines
{
System.out.println(“ les deux chaines de caracteres
sont identiques") ;
}
La classe String possède de nombreuses méthodes dont voici les principales :
Méthodes Rôle
charAt(int) renvoie le n éme caractère de la chaine
compareTo(String) compare la chaîne avec l'argument
concat(String) ajoute l'argument à la chaîne et renvoie la
nouvelle chaîne
4
Riadh BOUHOUCHI
5. Chapitre 7 : Les Classes de bases de JAVA
endsWith(String) ajoute l'argument à la chaîne et renvoie la
nouvelle chaîne
equalsIgnoreCase(String) compare la chaîne sans tenir compte de la
casse
indexOf(String) renvoie la position de début à laquelle
l'argument est contenu dans la chaine
lastIndexOf(String) renvoie la dernière position à laquelle
l'argument est contenu dans la chaine
lenght() renvoie la longueur de la chaine
replace(char,char) renvoie la chaîne dont les occurrences d'un
caractère sont remplacées
startsWith(String int) Vérifie si la chaîne commence par la sous
chaîne
substring(int,int) renvoie une partie de la chaine
toLowCase() renvoie la chaîne en minuscule
toUpperCase() renvoie la chaîne en majuscule
trim() enlève les caractères non significatifs de la
chaine
La classe StringBuffer :
Les objets de cette classe contiennent des chaines de caractères variables, ce qui permet de les
agrandir ou de les réduire.
Cet objet peut être utilisé pour construire ou modifier une chaîne de caractères chaque fois
que l'utilisation de la classe String nécessiterait de nombreuses instanciations d'objets
temporaires.
Par exemple, si str est un objet de type String, le compilateur utilisera la classe StringBuffer
pour traiter la concaténation de "abcde"+str+"z" en générant le code suivant :
new StringBuffer().append("abcde").append(str).append("z").toString();
Ce traitement aurait pu être réalisé avec trois appels à la méthode concat() de la classe String
mais chacun des appels aurait instancié un objet StringBuffer pour réaliser la concaténation,
ce qui est couteux en temps exécution.
La classe StringBuffer dispose de nombreuses méthodes qui permettent de modifier le
contenu de la chaîne de caractère et voici un exemple :
5
Riadh BOUHOUCHI
6. Chapitre 7 : Les Classes de bases de JAVA
public class MettreMaj {
static final String lMaj = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static final String lMin = "abcdefghijklmnopqrstuvwxyz";
public static void main( String[] args) {
System.out.println(MetMaj("chaine avec MAJ et des min"));
}
public static String MetMaj(String s) {
StringBuffer sb = new StringBuffer(s);
return toUpperCase(sb).toString();
}
}
La classe System :
Cette classe possède de nombreuses fonctionnalités pour utiliser des services du système
d'exploitation.
Les flux d'entrée/sortie standard :
La classe System définit trois variables statiques qui permettent d'utiliser les flux
d'entrée/sortie standards du système d'exploitation.
La variable in est de type PrintStream :
elle permet de gérer l’entrée standard du système.
Par défaut, c'est le clavier.
La variable out est de type InputStream :
C’est la sortie standard du système.
Par défaut, c'est le moniteur.
La variable err est de type PrintStream :
6
Riadh BOUHOUCHI
7. Chapitre 7 : Les Classes de bases de JAVA
C’est la sortie standard des erreurs du système.
Par défaut, c'est le moniteur.
Exemple en utilisant System.out :
System.out.println("salut");
Voici un exemple de quelques méthodes de la classe System :
méthode rôle
arraycopy(Object src, int src_position, Copie un tableau à partir de la matrice source
Object dst, int dst_position, int length) spécifiée, commençant à la position spécifiée, à
la position spécifiée du tableau de destination.
currentTimeMillis() Renvoie l'heure courante en millisecondes.
exit(int status) Renvoie l'heure courante en millisecondes.
gc() Exécute le garbage collector.
getProperty(String key) Obtient la propriété système indiqué par la clé
spécifiée.
La classe Integer :
La classe Integer encapsule une valeur du type int primitive dans un objet. L’objet de type
Integer contient un seul champ dont le type est int.
Voici quelques méthodes de la classe Integer :
Méthode Rôle
byteValue() Retourne la valeur de cet entier comme un
octet
equals(Object obj) Compare un objet par rapport à un autre
hashCode() Retourne le hashcode de l’entier
intValue() Retourne la valeur de l’entier avec un type
int
longValue() Retourne la valeur de l’entier avec un type
long
parseInt(String s) Convertie une chaine en un entier decimale
7
Riadh BOUHOUCHI
8. Chapitre 7 : Les Classes de bases de JAVA
Voici un exemple d’utilisation de la méthode parseInt(String s) :
public Boolean isInteger(String a)
{
try{
int i=Integer.parseInt(a);
}
catch(Exception e){
return false;
}
return true;
}
Cette méthode retourne une valeur booléenne true si la chaine a est un entier ou false dans le
cas contraire.
La classe Math
Cette classe contient des méthodes pour effectuer des opérations numériques de base.
Nous proposons dans cet exemple quelques méthodes :
Méthode Rôle
abs(int a) Retourne la valeur absolu de d’un
entier
max(int a, int b) Retourne la valeur maximum entre
deux entiers
min(int a, int b) Retourne la valeur minimum entre
deux entiers
La classe Runtime :
La classe Runtime permet d'interagir avec le système dans lequel l'application s'exécute :
obtenir des informations sur le système, arrêt de la machine virtuelle, exécution d'un
programme externe.
8
Riadh BOUHOUCHI
9. Chapitre 7 : Les Classes de bases de JAVA
Méthode Rôle
totalMemory() permet d'obtenir la quantité totale de la
mémoire.
freeMemory() permet d'obtenir et la quantité de mémoire
libre.
Les classes du package java.util :
Ce package contient un ensemble de classes utilitaires : la gestion des dates (Date et
Calendar), la génération de nombres aléatoires (Random), la gestion des collections
ordonnées ou non tels que :
la table de hachage (HashTable),
le vecteur (Vector),
la pile (Stack) ...,
la gestion des propriétés (Properties), des classes dédiées à l'internationalisation
(ResourceBundle, PropertyResourceBundle, ListResourceBundle) etc ...
La classe StringTokenizer :
Cette classe permet de découper une chaîne de caractères (objet de type String) en fonction de
séparateurs.
Le constructeur de la classe accepte 2 paramètres : la chaîne à décomposer et une chaîne
contenant les séparateurs.
import java.util.*;
class test9 {
public static void main(String args[]) {
StringTokenizer st = new
StringTokenizer("chaine1,chaine2,chaine3,chaine4",",");
while (st.hasMoreTokens())
{
System.out.println((st.nextToken()).toString());
}
}
}
Resultas :
chaine1
chaine2
chaine3
chaine4 9
Riadh BOUHOUCHI
10. Chapitre 7 : Les Classes de bases de JAVA
Remarques :
La méthode hasMoreTokens() fournit un contrôle d'itération sur la collection en
renvoyant un booleen indiquant s’il reste encore des éléments.
La méthode getNextTokens() renvoie le prochain élément sous la forme d'un objet
String
La classe Random :
La classe Random permet de générer des nombres pseudo−aléatoires. Après l'appel au
constructeur, il suffit d'appeler la méthode correspondante au type désiré.
Voici quelques méthodes :
Méthode rôle
next(int ) Retourne un entier au hazard
nextLong( ) Retourne un nombre pseudo−aléatoires de
type Long
nextFloat( ) Retourne un nombre pseudo−aléatoires de
type Float
La classe Date :
La classe Date permet de manipuler les dates.
Voici un exemple qui permet de récupérer l’heure et la date du système d’exploitation.
import java.util.*;
import java.text.SimpleDateFormat;
import java.lang.String;
class DateSysteme{
public static void main(String args[])
{
Date localTime = null;
localTime = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("hh_mm_ss");
StringBuilder sb = new StringBuilder(sdf.format(localTime));
String actualHeure = String.valueOf(sb);
System.out.println(actualDate);
SimpleDateFormat sdf1 = new SimpleDateFormat("dd_MM_yyyy");
StringBuilder sb1 = new StringBuilder(sdf1.format(localTime));
String actualDate = String.valueOf(sb1);
System.out.println(actualDate);
}
}
10
Riadh BOUHOUCHI