JAVA Les classes fondamentales (API)

Cours JAVA Les classes fondamentales (API), tutoriel & guide de travaux pratiques en pdf.

Le langage Java

Structure d’un programme
class HelloWorld {
public static void main (String[] args) { System.out.println(« Hello World ! »);
} }

Programme Java : constitue d’un ensemble de classes
• groupees en paquetages (packages);
• reparties en fichiers;
• chaque classe compilee est dans son propre fichier (un fichier dont le nom est le nom de la classe suffix´e par .class).

Un fichier source Java comporte
• des directives d’importation comme import java.io.*;
• des d´eclarations de classes.
Une classe est compos´ee de membres :
• d´eclarations de variables (attributs);
• d´efinitions de fonctions (m´ethodes);
• d´eclarations d’autres classes (nested classes);
Les membres sont
• des membres de classe (static);
• des membres d’objet (ou d’instance).
Une classe a trois rˆoles:
1. de typage, en d´eclarant de nouveaux types;
2. d’impl´ementation, en d´efinissant la structure et le comporte-ment d’objet;
3. de moule pour la cr´eation de leurs instances.
Une m´ethode se compose
• de d´eclarations de variables locales;
• d’instructions.
Les types des param`etres et le type de retour constituent la signa-ture de la m´ethode.
static int pgcd(int a, int b) {
return (b == 0) ? a : pgcd( b, a % b ); }
Point d’entr´ee : Une fonction sp´eciale est appel´ee `a l’ex´ecution.
Elle s’appelle toujours main et a toujours la mˆeme signature.
public static void main(String[] args) {…}
Marie-Pierre B´eal 18 Jean Berstel
Toute m´ethode, toute donn´ee fait partie d’une classe
(pas de variables globales). L’appel se fait par d´er´ef´erencement d’une classe ou d’un objet d’une classe, de la fa¸con suivante :
• M´ethodes ou donn´ees de classe : par le nom de la classe.
Math.cos() Math.PI
• M´ethode ou donn´ee d’un objet : par le nom de l’objet. …
Stack s = new Stack();
s.push(x);
• L’objet courant est nomm´e this et peut ˆetre sous-entendu.
public void setX(int x) {
this.x = x; }
• La classe courante peut ˆetre sous-entendue pour des m´ethodes statiques.
Exemple :
System.out.println()
• out est un membre statique de la classe System.
• out est un objet de la classe PrintStream.
• println est une m´ethode d’objet de la classe PrintStream.
Marie-Pierre B´eal 19 Jean Berstel

Expressions, types, variables
Toute expression a une valeur et un type. Les valeurs sont
• les valeurs primitives;
• les r´ef´erences, qui sont des r´ef´erences `a des tableaux ou `a des objets.
• Il existe une r´ef´erence sp´eciale null. Elle peut ˆetre la valeur de n’importe quel type non primitif.
Un objet ne peut ˆetre manipul´e, en Java, que par une r´ef´erence.
Une variable est le nom d’un emplacement m´emoire qui peut con-tenir une valeur. Le type de la variable d´ecrit la nature des valeurs de la variable.
• Si le type est un type primitif, la valeur est de ce type.
• Si le type est une classe, la valeur est une r´ef´erence a` un objet de cette classe, ou d’une classe d´eriv´ee. Une r´ef´erence est diff´erente des pointeurs du C (pas d’arithm´etique dessus).
Exemple :
Pixel p;
d´eclare une variable de type Pixel, susceptible de contenir une r´ef´erence `a un objet de cette classe.
p = new Pixel(4, 6);
L’´evaluation de l’expression new Pixel(4, 6) retourne une r´ef´erence `a un objet de la classe Pixel. Cette r´ef´erence est af-fect´ee `a p.
Marie-Pierre B´eal 20 Jean Berstel
Passage de param`etres
Toujours par valeur.
Exemple : Soit la m´ethode
static int plus(int a, int b) { return a+b;
}
`
A l’appel de la m´ethode, par exemple int c = plus(a+1,7), les param`etres sont evalu´es, des variables locales sont initialis´ees avec les valeurs des param`etres, et les occurrences des param`etres formels sont remplac´ees par les variables locales correspondantes. Par exemple,
int aLocal = a+1;
int bLocal = 7;
r´esultat = aLocal+bLocal;
Attention : Les objets sont manipul´es par des r´ef´erences. Un passage par valeur d’une r´ef´erence est donc comme un passage par r´ef´erence !
Attention : Ce n’est pas le passage par r´ef´erence du C++.
Exemple :
static void increment(Pixel a) { a.x++; a.y++;
}
Apr`es appel de increment(a), les coordonn´ees du point sont incr´ement´ees !
Marie-Pierre B´eal 21 Jean Berstel
Une variable se d´eclare en donnant d’abord son type.
int i, j = 5;
float re, im;
boolean termine;
static int numero;
static final int N = 12;
A noter :
• Une variable peut ˆetre initialis´ee.
• Une variable static est un membre de classe.
• Une variable final est une constante.
• Tout attribut de classe est initialis´e par d´efaut, `a 0 pour les variables num´eriques, `a false pour les bool´eennes, a` null pour les r´ef´erences.
• Dans une m´ethode, une variable doit ˆetre d´eclar´ee avant utili-sation. Elle n’est pas initialis´ee par d´efaut.
• Dans la d´efinition d’une classe, un attribut peut ˆetre d´eclar´ apr`es son utilisation. (Elle se fait a` l’int´erieur d’une m´ethode.)
Marie-Pierre B´eal 22 Jean Berstel
Instructions
Affectation, instructions conditionnelles, aiguillages, it´erations usuelles.
Affectation :
x = 1; y = x = x+1;
Instructions conditionnelles :
if (C) S
if (C) S else T
It´erations :
while (C) S
do S while (C)
for (E; C; G) S
Une instruction break; fait sortir du bloc o`u elle se trouve.
La conditionnelle C doit ˆetre de type booleen

0. Bibliographie
1. Programmation objet
2. Le langage Java
3. Les classes fondamentales (API)
4. Les flots
5. Les bases de données avec JDBC
6. Introduction a l’introspection
7. La programmation concurrente

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *