class ... { ... }
Comme les tableaux, les instances de classes sont des objets, et
non des valeurs. Comme les tableaux, les instances n'existent
dans la mémoire qu'après avoir été créées. C'est également l'opérateur
new , appliqué cette fois-ci à un
constructeur de la classe et à une liste d'arguments, placés entre les
parenthèses << (
>> et << )
>>, qui permet de construire
des instances, par exemple new Cible(). L'opérateur
new retourne une valeur, qui est une
référence à
l'objet créé.
Résumons. Les données sont réparties en trois catégories : les données primitives, les tableaux et les instances. Les données primitives sont elles-mêmes des valeurs. Les tableaux et les instances sont des objets, et non des valeurs.
Nous utiliserons par la suite une quatrième catégorie de types, les interfaces, mais aucune donnée ne peut être de ce type (voir § 3.1). Les bibliothèques de Java rassemblent des types, plus exactement des classes et des interfaces, et non des fonctions, comme c'est le cas en C ou en Fortran. Elles introduisent une profusion de types d'objets utiles au développement de programmes, par exemple le type String des chaînes de caractères, les types InputStream et OutputStream des flots d'entrée et de sortie. Ces types sont organisés en paquets, par exemple java.io ou java.util, qui rassemblent des types apparentés, eux-mêmes organisés de façon hiérarchique. On notera que l'usage est de donner aux classes et aux interfaces des noms commençant par une majuscule et aux paquets des noms commençant par une minuscule.