Programmation Java/Classes de base
Java est livré avec un ensemble de bibliothèques de base proposant des classes qui s'avèrent vite nécessaires. Tout programmeur Java doit avoir un bonne connaissance de toutes les possibilités offertes par ces composants. Il n'est pas nécessaire d'apprendre quoi que ce soit mais simplement d'avoir une idée générale de ce qui est disponible pour savoir quelles parties de la bibliothèque utiliser pour résoudre un problème donné.
Dorénavant, vous aurez toujours besoin d'avoir avoir la documentation complète sous le coude, via Internet ou sur votre ordinateur.
Paquetage java.lang
modifierLe paquetage (le package) java.lang est le paquetage de base de Java. Il n'est même pas nécessaire de faire un import de ce paquetage : il est implicite.
Ce paquetage regroupe les classes concernant les types (Boolean
, Byte
, Character
, Short
, Integer
, Long
, Float
, Double
, String
), les classes (Object
classe de base de toutes les autres, Class
), les threads (Thread
, ThreadGroup
), …
Les chaînes de caractères
modifierLes chaînes de caractères ne sont pas des types primitifs et sont des instances de la classe java.lang.String
. Les constantes sont entourées de guillemets.
Exemple :
String message = "Test des chaînes de caractères";
La concaténation se fait avec l'opérateur +
:
String message = "Test des chaînes de caractères"
+ " et de la concaténation";
La concaténation d'une chaîne de caractères avec un type primitif ajoute sa représentation nominale (décimal pour les types entiers, le caractère pour char
, "true"
ou "false"
pour boolean
) :
int a = 100;
String message = "A vaut " + a; // A vaut 100
La concaténation d'une chaîne de caractères avec un objet appelle sa méthode toString()
retournant une chaîne de caractères :
Object o=new Object();
String message = "L'objet " + o; // L'objet java.lang.Object@1fe081a3
Par défaut, la méthode toString()
définie dans la classe java.lang.Object
retourne le nom de la classe de l'objet, suivi du caractère arobase @
, suivi de la valeur retournée par la méthode hashCode()
en hexadécimal.
La méthode length()
permet d'obtenir la longueur d'une chaîne de caractères :
String message = "Test des chaînes de caractères";
System.out.print ( "Le message contient " );
System.out.print ( message.length() );
System.out.println( " caractères" );
Equivaut à :
System.out.print ( "Le message contient " );
System.out.print ( "Test des chaînes de caractères".length() );
System.out.println( " caractères" );
Nous pouvons utiliser des guillemets à l'intérieur d'une chaine de caractères en utilisant le caractère d'échappement \
String ma_string = "le mot \"mot\" contient 3 lettres";
Nous pouvons également utiliser des caractères spéciaux tels que \n (nouvelle ligne), \t (tabulation) pour formater la sortie.
String ma_string_formatee = "colonne 1\tcolonne 2\nvaleur 1\tvaleur 2\n"
Enfin, nous pouvons afficher des caractères particuliers (tels les caractères accentués, par exemple) en utilisant le préfixe \u suivi du code Unicode du caractère sur 4 chiffres hexadécimaux :
String chaine_unicode = "\u002D"; // le signe moins -
Cependant, la séquence \u
est également utilisable en dehors des chaînes de caractères pour encoder le code source.
Exemple :
int a = 200 \u002D 50; // le signe moins - -> 150
équivaut à :
int a = 200 - 50; // 150
Paquetage java.io
modifierCe paquetage concerne les flux d'entrées et sorties en général (fichiers, réseau, buffer).
Les deux classes abstraites InputStream
et OutputStream
gèrent les entrées et sorties binaires, utilisant des tableaux d'octets.
Les sous-classes de celles-ci sont plus spécialisées :
FileInputStream
etFileOutputStream
gèrent les fichiers,ByteArrayInputStream
etByteArrayOutputStream
lisent/écrivent depuis/vers un tableau d'octets.
Les classes Reader
et Writer
utilisent les tableaux de caractères.
Leurs sous-classes sont également plus spécialisées :
FileReader
etFileWriter
gèrent les fichiers,StringReader
etStringWriter
lisent/écrivent depuis/vers une chaîne de caractères.
Paquetage java.nio
modifierPaquetage java.text
modifierPaquetage java.util
modifierCe paquetage contient les classes permettant la gestion de collections (liste chaînées, table de hachage, tableau extensible, …).
Elle contient également une classe de générateur aléatoire (classe Random
), deux classes gérant le lancement de tâches périodiques ou à un moment donné (Timer
et TimerTask
), la gestion des dates (Date
, Calendar
, GregorianCalandar
), …
Paquetage java.net
modifierCe paquetage contient les classes permettant de communiquer à travers un réseau en utilisant des sockets TCP ou UDP. Il existe également des classes pour gérer les adresses IP (version 4 et 6).
Ce paquetage regroupe les classes graphiques de base.
Les composants graphiques utilisent les composants natifs de la platforme de lancement. Ils sont nommés Heavyweight, par opposition à Lightweight qui désigne les sous-classes de la classe Component
.
Bien que beaucoup plus rapide, il tend à être remplacé par swing, bien plus fourni.
Paquetage javax.swing
modifierC'est un paquetage de gestion d'interface graphique très fournie.
Les composants sont entièrement développés en Java à partir de la classe java.awt.Component
.
Quelle que soit la plateforme de lancement de l'application, ils ont donc le même comportement et la même apparence, qui peut d'ailleurs être configurée.
-
Metal
-
Nimbus