43
Les fondements du langage Java 1 Sun Services Java™ Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Embed Size (px)

Citation preview

Page 1: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 1

Sun Services

Java™ Programming Language

Copyright 2005 K.ALLEM All Rights Reserved

Page 2: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 2

Principales ressources

Au cœur de Java Java comment programmer Thinking in Java Les cahiers du programmeur Java 1.4 et 5.0

Page 3: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 3

Un exemple simple…

public class ExempleSimple

{

public static void main (String [] args )

{

System.out.println( “ Java n’ est pas seulement une île d’indonesie…!! “);

}

}

public : est un modificateur d’accès

class : dans un programme Java, tout doit se trouver dans un classe

static, void : ils sont nécessaires à la compilation

main : chaque application Java doit disposer d’une méthode main

{ } : les accolades sont employés pour délimiter les blocs du programme Java

System.out.println( “… “ ) ; : est une instruction Java ( l’equivalent d’un phrase de français)

Page 4: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 4

Compilation et exécution

Le fichier ExempleSimple.java

Compilation : javac ExempleSimple.java

on obtient ExempleSimple.class

Exécution : java ExempleSimple

Page 5: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 5

Commentaires…

Ils n’apparaissent pas dans le programme exécutable et ils servent pour documenter un programme

// ceci est un commentaire avec une seule ligne

/*

Ceci est un commentaire

de plusieurs lignes

*/

Page 6: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 6

Types de données

Java est un langage fortement typé (le type de chaque

variable doit être déclaré)

Il existe 8 types primitifs (prédéfinies): Le type entier (4) Le type à virgule flottante (2) Le type caractère (1) Le type booléen (1)

Page 7: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 7

Les types entiers

Le type entier représente les nombres sans partie décimale.

Java dispose 4 types:

long 8 octets -9 223 372 036 854 775 808 à

9 223 372 036 854 775 807

int 4 octets -2 147 483 648 à 2 147 483 647

short 2 octets -32 768 à 32 767

byte 1 octets -128 à 127

Page 8: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 8

Le types à virgule flottante

Le type à virgule flottante exprime les nombres réels disposant

d’une partie décimale

float 4 octets +/- 10-45 à +/- 1038

double 8 octets +/- 10-323 à +/- 10308

Page 9: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 9

Le type caractère (char)

' H ' est un caractère

" H " est une chaîne contenant un seul caractère

Les valeurs littérales de type caractère se

notent entre apostrophes (')

Page 10: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 10

Le type booléen (boolean)

• il peut avoir deux valeurs, false ou true

• Il est employé pour l’évaluation de conditions logiques

Page 11: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 11

Les variables…

Comment déclarer une variable?

En Java toute variable a un type

Syntaxe : type variable ;Exemples : double salaire ;

long populationDuMonde;boolean terminé ; int i, j ; // correct mais pas recommandé

Attention java est sensible à la casse et à l’usage des mots clés

Page 12: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 12

Affectations et initialisations

Comment initialiser une variable?Une variable déclarée devra être initialisée à l’aide d’une instruction d’affectation

Comment affecter une variable?L’affectation d’une variable déclarée se fait à l’aide du symbole d’égalité (=)

Exemple : int nombreEnfants; // cela est une déclaration nombreEnfants = 3; // cela est une affectation

int nombreEnfants = 3; // cela est une initialisation

Page 13: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 13

Les constantes…

final : c’est un mot clé qui sert à designer une constante public class ExempleSimple

{public static void main (String [] args ) {

final ……System.out.println( “ Java n’ est pas seulement une île d’indonesie “);

}}

final signifie qu’on affecte une valeur à la variable une seule fois, et unefois pour toutes.static & final créent une constante qui est accessible à plusieurs méthodes de la même classe

Page 14: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 14

Les opérateurs

Les opérateurs habituels (+ - * / )

La fonction mod : le reste d’une division entière

Diviser un entier par 0 déclenche une exception

L’instruction x += 2; équivalent à x = x + 2;

Page 15: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 15

Opérateurs : incrémentation et décrémentation

• Incrémenter : x++ c’est ajouter 1 à la valeur courante

• Décrémenter : x-- c’est retrancher 1 à cette valeur

• Exemple : int m = 5;

int n = 5;

int a = 2 * ++m; //a = 12, m =6

int b =2 * n++; // b = 10,

C++ ou ++C ??

Page 16: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 16

Opérateurs arithmétiques

Page 17: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 17

Opérateurs logiques

Page 18: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 18

Opérateurs de comparaison

Page 19: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 19

Comprendre la portée

• Les règles de portée déterminent où est reconnue une variable dans un programme.

Les variables appartiennent à deux catégories de portée principales :

• Variables globales : Variables reconnues dans toute une classe.

• Variables locales : Variables reconnues uniquement dans le bloc de code où elles sont déclarées.

Page 20: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 20

Exemple :class Portée{

int x = 0;void méthode1() {

int y; y = x; // Cela fonctionne. méthode1 peut accéder à y.}void méthode2() {

int z = 1; z = y; // Cela ne fonctionne pas : // y est définie hors de la portée de méthode2.

}}

Page 21: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 21

La boucle while

• La boucle while est utilisée pour créer un bloc de code qui sera exécuté tant qu’une condition particulière est satisfaite.

• Voici la syntaxe générale de la boucle while :

while ( <instruction de condition booléenne> )

{

<code à exécuter tant que la condition est vraie>

}

Page 22: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 22

Exemple

int x = 0; //Initialise x à 0.

while (x < 10) { //Instruction de condition booléenne.

System.out.println("Bouclage"); //Imprime "Bouclage" une fois.

x++; //Incrémente x pour l’itération suivante.

}

Page 23: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 23

La boucle for

• La boucle for est la plus puissante des constructions de boucles.

• Voici la syntaxe générale d’une boucle for :

for ( <initialisation> ; <condition booléenne> ; <itération> )

{

<code d’exécution>

}

Page 24: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 24

Exemple

for (int x = 0; x < 10; x++)

{

System.out.println("Bouclage");

}

Page 25: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 25

Un peu de vocabulaire…

Une classe est le modèle ou le matrice del’objet Construire un objet à partir d’une classe, c’est créer une instance de cette classe L’encapsulation consiste à combiner les attributs et les méthodes dans l’objet et àdissimuler l’implémentation des donnéesaux utilisateurs de l’objet

Page 26: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 26

Les objets

Identifier les trois caractéristiquement d’un objet : Le comportement de l’objet :Quelles méthodes peut on appliquer à cet objet ? L’état de l’objet :Comment l’objet réagit-il lorsqu’on lui applique ces

méthodes ? l’identité de l’objet : Comment l’objet se distingue-t-il des autres qui peuvent avoir le même comportement et le même état ?

Page 27: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 27

Objets et variables objets

• Pour construire des nouvelles instances on utilise les constructeurs

• Un constructeur est une méthode spéciale dont le but est de construire et d’initialiser les objets

• Un constructeur a toujours le même nom que la classe

• Pour construire un objet, on combine le constructeur avec l’opérateur newExemple : new Date() // pour construire un objet Date

Page 28: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 28

Objets et variables objets

Date anniversaire = new Date( ); /*on stocke l’objet construit dans une variable*/

Il existe une différence entre les objets et les variables objets

Date dateLimite; /* on déclare une variable objet qui peut référencer des objets de type Date,

dateLimite n’est pas un objet et ne référence encore aucun objet */

dateLimite = new Date( ) ; // on doit initialiser la variable dateLimite

dateLimite = anniversaire; /* la variable dateLimite référence un objet existant, une autre possibilité pour initialiser la variable dateLimite */

dateLimite = null; // la variable objet ne référence aucun objet

Page 29: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 29

• Conclusions…

Page 30: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 30

Java est orienté objet…

• Java a toutes les caractéristiques d’un langage objet; il permet de définir des classes comportant des descriptions d’attributs (variables) et d’opérations (méthodes)utilisables sur des objets.

• Les objets communiquent entre eux et réagissent aux événements issus de leur environnement par le biais de messages.

Page 31: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 31

Java est fortement typé…

• Toute donnée manipulée par Java doit être typée. Le type peut être soit un type de base (int, float, char, boolean...) soit un nom de classe du JDK ou créée par l’utilisateur.

Page 32: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 32

Java est déclaratif…

• Tout objet ou variable doit être déclaré avant d’être manipulé. La déclaration comporte de manière classique un type et l’identificateur de donnée.

int nb = 10;

Page 33: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 33

Java est structuré…

• Structuré en packages (ensembles de classes), classes et méthodes.

• Lors de l’exécution, les instructions de contrôle de flot (branchements, boucles...) sont elles mêmes structurées.

for (i=0; i < 10; i++) {if (i == 5)

{System.out.println(“milieu!”);}

}

Page 34: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 34

Java est... beau !

• Java est très agréable (à programmer) et permet de développer vite et simplement des applications complexes.

Page 35: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 35

Architecture d’un programme Java

• Programme Java = ensemble de classes pouvant être regroupées en packages

• Classe = attributs + méthodes

• Méthode = unique unité de code

Page 36: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 36

Programme Java = ensemble de classes pouvant être regroupées en packages

• Java est un langage orienté objet. Le composant de base d’un programme Java est donc la classe, qui agit comme modèle permettant de “fabriquer” des objets. Les classes peuvent être regroupées en modules appelés packages.

Page 37: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 37

Classe = attributs + méthodes

• Un classe comporte un ensemble de définitions d’attributs et un ensemble de méthodes que l’on pourra utiliser sur tous les objets de cette classe.

Page 38: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 38

Méthode = unique unité de code

• Le code source d’un programme Java doit se situer uniquement à l’intérieur du corps des méthodes

Page 39: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 39

Exemple:public class Point { // Les attributs private int x; private int y;

// Les méthodes public void setXY(int px, int py)

{ x = px; y = py; } public int getX() { return x; } public int getY()

{ return y;

}}

Page 40: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 40

Les tableaux

• En Java les tableaux sont des objets référencés. Le type tableau est assimilable à une classe

• Déclaration d’un tableau

int tableau1[ ];

int[ ] tableau2;

int matrice[ ][ ];

• Un tableau doit être alloué dynamiquement, comme tout objet Java (à l’aide de l’opérateur new)

int tab[10]; // ne compile pas

Page 41: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 41

Les tableaux• Allocation et initialisation

int tab1[ ] = new int[10];int mat[ ][ ] = new int[4][5];int tab2[ ] = {1,2,3,4}

- Un tableau n’est pas un type élémentaire. Une variablede type tableau est donc une référence sur un tableau. pour créer ce tableau nous utilisons l’opérateur new. C’est une allocation dynamique.

- Il est également possible de créer le contenu d’un tableau lors de la déclaration en fournissant la liste complète de ses éléments.

Page 42: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 42

Les tableaux

• Utilisation

int tab1[ ] = new int[10];...// utilisations correctestab1[0] = 100;tab1[1] = 200;// mais ceci n’est pas correcttab1[10] = 1000;

Page 43: Les fondements du langage Java1 Sun Services Java Programming Language Copyright 2005 K.ALLEM All Rights Reserved

Les fondements du langage Java 43

Les tableaux

- En Java les tableaux sont toujours indexés par des int et le premier élément commence à l’indice 0.

- tab[tab.length - 1] est le dernier élément du tableau

- Si le tableau est alloué avec une taille inférieure à zéro ou si on tente d’accéder un élément ne se trouvant pas entre le premier et le dernier élément compris, une exception est générée.