next up previous
Next: About this document ...

Mémento Java

Le langage
Le langage de programmation Java (nom dérivé de Kawa) a vu le jour en 1995. C'est un langage Le fichier source d'un programme est compilé en un langage intermédiaire (byte code) indépendant de la machine cible. Le byte code est interprétable sur toute machine possédant une machine virtuelle Java.

Le langage Java vient avec un ensemble important de classes prédéfinies (autour de 500) qui encapsulent des mécanismes de base comme

Structure générale

Un programme Java est constitué

Chaque classe contient Les fonctions contiennent des déclarations de variables locales et des instructions.

Une fonction spéciale est appelée à l'exécution :

public static void main(String[] args) {...}
Tout identificateur a un type. Chaque fonction et chaque donnée font partie d'une classe. La classe courante et l'objet courant sont sous-entendus.

Exemple:

System.out.println()
Ici out est une donnée statique de la classe System. C'est un objet de la classe PrintStream et println est une méthode d'objet.

Expressions
Types primitifs
byte : un octet.
boolean vaut true ou false
char caractère sur 2 octets (en unicode)
short, int, long entier sur sur 2, 4 ou 8 octets
float, doublenombre réel sur 4 ou 8 octets

Une variable de ces types se déclare en donnant d'abord son type.

 int i, j;
 float re, im;
 boolean termine;
Une variable static est membre de classe. Une variable final est une constante.

Les tableaux
Un tableau se déclare, se construit et s'utilise. Déclaration :

int[] a  //vecteur d'entiers+
double[][] m;  // matrice de doubles
La création d'un tableau par new :
a = new int[N];
m = new double[N][P];
On s'en sert par
x = m[i][j];
for (i = 0; i < a.length; i++)
  System.out.print( a[i] );

On peut fusionner déclaration et initialisation :

int N = 7;
String[] jours = {"lundi", "mardi","mercredi",
 "jeudi", "vendredi", "samedi", "dimanche"};

Instructions
Affectation
x = 1; y = x = x+1;
Instructions conditionnelles
if (E) S
if (E) S else T
on peut aussi traiter plus de cas :
switch (chiffre) {
  case 0: return "zero";
  case 1: return "un";
  ...
}
Itérations

while (E) S
do S while (E)
for (E; F; G) S
Une instruction break; fait sortir du bloc où elle se trouve.

Fonctions
Chaque classe contient une suite de fonctions non emboitées. La déclaration commence par : type de la valeur nom de la fonction( type et nom des arguments)

Une fontion qui ne retourne pas de valeur a pour type de retour le type void.

L'instruction

return E;
donne la valeur de E comme valeur de la fonction et interrompt l'exécution.

Un même identificateur peut désigner des fonctions différentes pourvu que les signatures des arguments soient différentes.

Classes et objets
Une classe est à la fois

Les constructeurs sont des fonctions particulières permettant de créer des objets de la classe.

class Gauss {
  int re; 
  int im;

  Gauss (int x, int y) { re = x; im = y; }

  public static void main(String[] args) {
    Gauss a = new Gauss(3,5);
    ...
  }
}
Les méthodes d'objet s'appliquent à l'objet appelant.
void imprimer() {
  System.out.println(re + " " + im);
}
On s'en sert dans
a.imprimer();
De manière équivalente :
static void simprimer(Gauss a) {
  System.out.println(a.re+ " "+ a.im);
}
s'utilise par
simprimer(a);

Objets et types primitifs
Une variable d'un type primitif désigne une valeur de ce type.
Une variable d'un type non primitif désigne l'emplacement où se trouve l'objet après sa création. On dit que c'est une référence.

Gauss a; //creation d'une variable
int[] m;
a = new Gaus(); // creation de l'objet
m = new int[10];
A la création, une variable d'objet contient null. C'est la référence vide.

Copie de références et copie d'objets.

Gauss b;
b = a; //copie de reference : un seul objet
a et b désignent le même objet. Une copie véritable doit être programmée.



 
next up previous
Next: About this document ...
Dominique Perrin
1998-11-18