java.lang.String
est une suite de trois identificateurs, conventionnellement séparés par des points, qui place l’identificateur
String
(identificateur de classe) dans l’espace de noms
java.lang
. Si le code Java que l’on écrit a besoin d’accéder à la classe
String
, il va tout d’abord lui falloir accéder à l’espace de noms
java.lang
.
On peut faire une analogie avec un système de fichiers. Dans un tel espace, on peut désigner un fichier par son nom, mais cela ne nous permet pas de le retrouver directement. Pour cela, il nous faut le chemin de répertoire dans lequel il se trouve. Son chemin complet permet de positionner ce fichier dans un dossier.
Nous avons déjà vu un autre exemple : pour imprimer une chaîne de caractères à l’écran nous avons utilisé la commande
System.out.println(String)
. À y regarder de plus près, on se rend compte que
System
est une classe de l’espace de noms
java.lang
(que l'on appellera
package
par la suite), tout comme
String
, que
out
est un champ statique de cette classe, de type
PrintStream
, et que
println
est une méthode de la classe
PrintStream
. On aurait donc pu écrire aussi :
java.lang.System.out.println(String)
.
Nous verrons les espaces de nom et les packages en détails dans la suite.
De même qu'il est possible à plusieurs fichiers de même nom de cohabiter sur le même système de fichiers, à condition qu'ils soient dans différents répertoires, grâce à la hiérarchisation de ces espaces de noms, on n’a pas à se soucier de donner plusieurs fois le même identificateur à différentes choses. Du moment que ces choses sont placées dans différents espaces de noms, la machine Java saura les retrouver.
Tableau 2. Expression
Expression | Exemple d'utilisation |
---|---|
Une expression littérale |
245
|
Une référence sur l’objet où l’on se trouve |
this
|
Un accès à un champ |
marin.nom
|
Un appel de méthode |
marin.getNom()
|
La création d’un objet |
new Marin("Surcouf")
|
La création d’un tableau |
new int [27]
|
L’accès à un tableau |
marin [i][j]
|
N’importe quelle expression connectée par des opérateurs |
marin.salaire * 10
|
N’importe quelle expression entre parenthèses |
(marin.salaire * 10)
|
void
.
Une expression peut se trouver à gauche ou à droite d’une affectation. Si elle se trouve à gauche, le résultat de cette expression est l’endroit où sera stocké le résultat de l’évaluation de l’expression de droite.
Le type d’une expression est connu soit à la compilation, ou vérifié à l’exécution. Les types des expressions que l’on manipule doivent être compatibles, il n’y a pas moyen d’échapper à cette règle.
String
StringBuffer
et
StringBuilder