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.
Le 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 (codice_1, codice_2, codice_3, codice_4, codice_5, codice_6, codice_7, codice_8, codice_9), les classes (codice_10 classe de base de toutes les autres, codice_11), les threads (codice_12, codice_13), …
Les chaînes de caractères.
Les chaînes de caractères ne sont pas des types primitifs et sont des instances de la classe codice_14. 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 codice_15 :
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 codice_16, codice_17 ou codice_18 pour codice_19) :
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 codice_20 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 codice_20 définie dans la classe codice_22 retourne le nom de la classe de l'objet, suivi du caractère arobase codice_23, suivi de la valeur retournée par la méthode codice_24 en hexadécimal.
La méthode codice_25 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 codice_26 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.
Ce paquetage concerne les flux d'entrées et sorties en général (fichiers, réseau, buffer).
Les deux classes abstraites codice_27 et codice_28 gèrent les entrées et sorties binaires, utilisant des tableaux d'octets.
Les sous-classes de celles-ci sont plus spécialisées :
Les classes codice_33 et codice_34 utilisent les tableaux de caractères.
Leurs sous-classes sont également plus spécialisées :
Paquetage java.util.
Ce 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 codice_39), deux classes gérant le lancement de tâches périodiques ou à un moment donné (codice_40 et codice_41), la gestion des dates (codice_42, codice_43, codice_44), …
Paquetage java.net.
Ce 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).
Paquetage java.awt.
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 codice_45.
Bien que beaucoup plus rapide, il tend à être remplacé par swing, bien plus fourni.
Paquetage javax.swing.
C'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 codice_46.
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.