Previous Up Next

B.3.5  Notations complètes et abrégées

Pour les classes (et les constructeurs)

Quand une classe C est définie dans un package pkg, son nom est pkg.C. Il en va d’ailleurs de même pour les constructeurs de la classe C. Ainsi, le nom complet de la classe Point définie dans le package java.awt est java.awt.Point. On est donc censé écrire par exemple

  java.awt.Point p = new java.awt.Point(100, 50) ;

C’est très lourd, pour l’éviter on peut introduire la déclaration suivante au début du fichier source

import java.awt.Point ;

Et si le nom de classe Point survient plus tard dans le fichier, le compilateur sait que l’on a voulu dire java.awt.Point.

Une autre déclaration possible en début de fichier est

import java.awt.* ;

Cela revient aux déclarations java.awt.C effectuées pour toutes les classes C du package java.awt.

Pour les champs et les méthodes

Une variable (une méthode) d’une classe C est normalement désignée en la préfixant par C. ; mais dans le code de la classe elle-même le nom de la variable suffit. De même, dans le code des méthodes des objets (et des constructeurs) une variable d’instance (une méthode) est normalement désignée en la préfixant par this. ; mais le nom de la variable (méthode) suffit.

Les notations complètes permettent parfois d’insister sur la nature d’une variable, et de surmonter le masquage des variables d’instance et de classe par des variables locales. Ces masquages ne sont pas toujours malvenus. Par exemple, nous avons tendance à donner aux constructeurs des arguments homonymes aux variables d’instance initialisées. Ce qui reste possible en explicitant les variables d’instance en tant que telles.

class List {
  int val ; List next ;

  List (int val, List next) { this.val = val ; this.next = next ; }
}

Dans le constructeur ci-dessus, this.val est la variable d’instance, val tout court est l’argument.


Previous Up Next