Programmation Java/Classes de base
Un livre de Wikibooks.
| Programmation |
| Java |
| Sommaire |
| IHM avec SWING |
| Annexes |
| Modifier ce modèle |
Sections |
[modifier] Extension java.lang
L'extension (le package) java.lang est l'extension de base de Java. Il n'est même pas nécessaire de faire un import de cette extension : il est implicite.
Cette extension 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), …
[modifier] 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 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
[modifier] Extension java.io
Cette extension 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 :
FileInputStreametFileOutputStreamgèrent les fichiers,ByteArrayInputStreametByteArrayOutputStreamlisent/é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 :
FileReaderetFileWritergèrent les fichiers,StringReaderetStringWriterlisent/écrivent depuis/vers une chaîne de caractère.
[modifier] Extension java.nio
[modifier] Extension java.text
[modifier] Extension java.util
Cette extension 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ériodique ou à un moment donnée (Timer et TimerTask), la gestion des dates (Date, Calendar, GregorianCalandar), …
[modifier] Extension java.net
[modifier] Extension java.awt
Cette extension 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.
[modifier] Extension javax.swing
C'est une extension de classe 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.