Vous êtes sur la page 1sur 69

Programmation en Java

Prsent par : Mlle. Amina OUSSALEH TAOUFIK


1

Anne Acadmique : 2010-2011

Plan du cours

Programmation en Java

I. Gnralits sur Java II. Java et la Programmation Oriente Objet III. Java et la Programmation Evnementielle

Anne Acadmique 2010-2011

Plan du cours

Programmation en Java

I.

Gnralits sur Java


i. ii. iii. Caractristiques de Java Premier programme en Java Les bases du langage Java

II. Java et la Programmation Oriente Objet III. Java et la Programmation Evnementielle

Anne Acadmique 2010-2011

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Caractristiques de Java

Java est interprt


Programmation en Java

le source est compil en byte code. le byte code est ensuite excut par un interprteur Java : la Java Virtual Machine (JVM). ce concept e base de Java :WORA (Write Once, Run Anywhere : crire une fois, excuter partout).

Java est portable

le code reste indpendant de la machine sur laquelle il s'excute. les programmes java sont excuts sur tous les environnements qui possdent une JVM.

Anne Acadmique 2010-2011

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Caractristiques de Java

Java est Orient Objet


Programmation en Java

chaque fichier source contient la dfinition d'une ou plusieurs classes qui sont utilises les unes avec les autres pour former une application. Java nest pas entirement Objet car il dfinit des types prdfinis.

Java est simple

pas de notions difficiles ( pas de pointeurs, pas dhritage multiples)

Java est bien plus que a !!!!!!

Anne Acadmique 2010-2011

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Premier programme en Java

Programmation en Java

Anne Acadmique 2010-2011

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Premier programme en Java


Commentons le programme
Public class PremProg{} : dfinition dune classe nomme PremProg Une mthode public static void main(String [] args ): la fonction principale Le paramtre String[] args est obligatoire. On peut crire String[] args ou String args[] ou donner une autre nom que args. Le mot-cl public dans public class PremProg sert dfinir les droits daccs des mthodes dautres classes la classe PremProg. Le mot-cl public dans public static void main.. est obligatoire . Il permet la machine virtuelle daccder la mthode main. Notons quon peut inverser lordre des mots public et static !

Programmation en Java

Anne Acadmique 2010-2011

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


1. Les donnes de Java
Java utilise les types de donnes suivants: les nombres entiers les nombres rels les caractres et chanes de caractres les boolens les objets

Programmation en Java

Anne Acadmique 2010-2011

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


a. Les types de donnes prdfinies

Programmation en Java

Anne Acadmique 2010-2011

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


b. Dclaration des donnes
a. Dclaration des constantes

Programmation en Java

final type nom = valeur;

Ex: final float PI=3.141592F;

Anne Acadmique 2010-2011

10

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


b. Dclaration des donnes
b. Dclaration des variables

Programmation en Java

type nom = valeur;


Rq:
Java fait la diffrence entre majuscule et minuscule Les noms de variables sont une suite de caractres, le premier est alphabtique, le reste alphabtique ou numrique

Anne Acadmique 2010-2011

11

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


c. Les conversions permises en Java (1/3)

Programmation en Java

Anne Acadmique 2010-2011

12

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


c. Les conversions permises en Java (2/3)

Programmation en Java

Anne Acadmique 2010-2011

13

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


c. Les conversions permises en Java (3/3)

Programmation en Java

Anne Acadmique 2010-2011

14

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


d. Les tableaux de donnes (1/2)
Un tableau Java est un objet permettant de rassembler sous un mme identificateur des donnes de mme type.

Programmation en Java

La syntaxe Tableau[i] dsigne la donne n i o i appartient l'intervalle [0,n-1] Un tableau deux dimensions pourra tre dclar comme suit :

La syntaxe Tableau[i] dsigne la donne n i de Tableau o i appartient l'intervalle [0,n-1]. Tableau[i] est lui-mme un tableau : Tableau[i][j] dsigne la donne n j de Tableau[i] o j appartient l'intervalle [0,p-1].
Rq :Toute rfrence une donne de Tableau avec des index incorrects gnre une erreur fatale.
Anne Acadmique 2010-2011

15

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


d. Les tableaux de donnes (2/2)

Ex:
Programmation en Java

Anne Acadmique 2010-2011

16

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


2. Les instructions lmentaires de Java
On distingue deux types:

Programmation en Java

les instructions lmentaires excutes par l'ordinateur les instructions de contrle du droulement du programme

Anne Acadmique 2010-2011

17

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


2. Ecriture sur Ecran

Programmation en Java

3. Lecture de donnes tapes au clavier


Classe Clavier fournie en annexe du cours

Objet Scanner fourni dans import java.util.Scanner


Anne Acadmique 2010-2011

18

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


3. Lecture de donnes tapes au clavier (suite)

Programmation en Java

Anne Acadmique 2010-2011

19

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


3. Affectation de la valeur d'une expression une variable

Programmation en Java

Expressions Arithmtiques:
+ addition soustraction * multiplication / division : le rsultat est le quotient exact si l'un au moins des oprandes est rel. Si les deux oprandes sont entiers le rsultat est le quotient entier. Ainsi 5/2 -> 2 et 5.0/2 ->2.5. % modulo: le rsultat est le reste quelque soit la nature des oprandes, le quotient tant lui entier

Anne Acadmique 2010-2011

20

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


3. Affectation de la valeur d'une expression une variable

Programmation en Java

Quelques fonctions mathmatiques de la classe Math


double sqrt(double x) double cos(double x) double sin(double x) double tan(double x) double pow(double x,double y) double exp(double x) double log(double x) double abs(double x) racine carre Cosinus Sinus Tangente x la puissance y (x>0) Exponentielle Logarithme nprien valeur absolue

Anne Acadmique 2010-2011

21

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


3. Affectation de la valeur d'une expression une variable

Programmation en Java

Expressions relationnelles
Les oprateurs sont les suivants : <, <=, ==, !=, >, >= ordre de priorit >, >=, <, <= ==, != Le rsultat d'une expression relationnelle est le boolen false si expression est fausse true sinon. Exemple : boolean fin; int x; fin=x>4;
Anne Acadmique 2010-2011

22

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


3. Affectation de la valeur d'une expression une variable

Programmation en Java

Expressions relationnelles
Comparer deux caractres :
Soient deux caractres C1 et C2. Il est possible de les comparer avec les oprateurs <, <=, ==, !=, >, >= Ce sont alors leurs codes ASCII, qui sont des nombres, qui sont alors compars. On rappelle que selon l'ordre ASCII on a les relations suivantes : espace < .. < '0' < '1' < .. < '9' < .. < 'A' < 'B' < .. < 'Z' < .. < 'a' < 'b' < .. <'z'

Anne Acadmique 2010-2011

23

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


3. Affectation de la valeur d'une expression une variable
Expressions relationnelles
Comparer deux chaines de caractres :
On ne peut utiliser ici les oprateurs relationnels <, <=, ==, !=, >, >= . Il faut utiliser des mthodes de la classe String : Ex: String chaine1, chaine2; chaine1=; chaine2=; int i=chaine1.compareTo(chaine2); boolean egal=chaine1.equals(chaine2)

Programmation en Java

la variable i aura la valeur : 0 si les deux chanes sont gales 1 si chane n1 > chane n2 -1 si chane n1 < chane n2 La variable egal aura la valeur true si les deux chanes sont gales.
Anne Acadmique 2010-2011

24

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


3. Affectation de la valeur d'une expression une variable
Expressions Boolennes

Programmation en Java

! (Non) , && (Et) , || (Ou)

Combinaisons doprateurs
a=a+b peut s'crire a+=b a=a-b peut s'crire a-=b Il en est de mme avec les oprateurs /, %,*

Expressions dincrmentation / dcrmentation


La notation variable++ signifie variable=variable+1 ou encore variable+=1 La notation variable-- signifie variable=variable-1 ou encore variable-=1.

Anne Acadmique 2010-2011

25

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


4. Structure de choix simple
Syntaxe : if (condition) { actions_condition_vraie; } else { actions_condition_fausse; }
Notes: la condition est entoure de parenthses. chaque action est termine par point-virgule. les accolades ne sont pas termines par point-virgule. les accolades ne sont ncessaires que s'il y a plus d'une action. la clause else peut tre absente. Il n'y a pas de then.)

Programmation en Java

Anne Acadmique 2010-2011

26

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


Exo : Programme de facturation avec remise
Ecrire un programme de facturation avec remise. Il lit en donne un simple prix hors taxes et calcule le prix TTC correspondant (avec un taux de TVA constant de 18.6%). Il tablit ensuite une remise dont le taux dpend de la valeur obtenue, savoir: - 0% pour un montant infrieur 1000 Dhs - 1% pour un montant >= 1000Dhs et < 2000 Dhs - 3% pour un montant >= 2000 Dhs et < 5000 Dhs - 5% pour un montant >= 5000 Dhs
Anne Acadmique 2010-2011

Programmation en Java

27

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


Correction: Programme de facturation avec remise

Programmation en Java

Anne Acadmique 2010-2011

28

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


5. Structure de cas
Syntaxe : switch(expression) { case v1:

Programmation en Java

actions1; break; case v2: actions2; break; .. .. .. .. default: actions_sinon;

} Notes : La valeur de l'expression de contrle, ne peut tre qu'un entier ou un caractre. l'expression de contrle est entoure de parenthses. la clause default peut tre absente. l'instruction break fait sortir de la structure de cas. Si elle est absente la fin du bloc d'instructions de la valeur vi, l'excution se poursuit alors avec les instructions de la valeur vi+1.
Anne Acadmique 2010-2011

29

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


5. Structure de cas

Programmation en Java

Anne Acadmique 2010-2011

30

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


6. Structure de rptition for
Syntaxe :

Programmation en Java

Notes: les 3 arguments du for sont l'intrieur d'une parenthse.


les 3 arguments du for sont spars par des points-virgules. chaque action du for est termine par un point-virgule. l'accolade n'est ncessaire que s'il y a plus d'une action. l'accolade n'est pas suivie de point-virgule.
31

Anne Acadmique 2010-2011

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


7. Structure de rptition while
Syntaxe :

Programmation en Java

Notes: la condition est entoure de parenthses.


chaque action est termine par point-virgule. l'accolade n'est ncessaire que s'il y a plus d'une action. l'accolade n'est pas suivie de point-virgule. RQ : Elle peut ne jamais tre excute
32

Anne Acadmique 2010-2011

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


8. Structure de rptition dowhile
Syntaxe :

Programmation en Java

Notes:
la condition est entoure de parenthses. chaque action est termine par point-virgule. l'accolade n'est ncessaire que s'il y a plus d'une action. l'accolade n'est pas suivie de point-virgule. Rq: La boucle est faite au moins une fois !!

Anne Acadmique 2010-2011

33

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


9. Instructions de branchement inconditionnel break et continue
Ces instructions sont utilises gnralement au sein des boucles. Break ordinaire : Break avec tiquette :

Programmation en Java

Anne Acadmique 2010-2011

34

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


9. Instructions de branchement inconditionnel break et continue (suite)
Ces instructions sont utilises gnralement au sein des boucles. Continue ordinaire : continue avec tiquette : mme chose que pour break sauf que ltiquette doit tre celle dune boucle

Programmation en Java

Anne Acadmique 2010-2011

35

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


Quelques exercices : Exo1: calcul dune suite de racines carres
crire un programme qui calcule les racines carres de nombres fournis en donne. Il sarrtera lorsquon lui fournira la valeur 0. Il refusera les valeurs ngatives. Son excution se prsentera ainsi : donnez un nombre positif : 2 sa racine carree est : 1.4142135623730951 donnez un nombre positif : -3 svp positif donnez un nombre positif : 5 sa racine carree est : 2.23606797749979 donnez un nombre positif : 0

Programmation en Java

Anne Acadmique 2010-2011

36

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


Quelques exercices : Exo2: calcul de la valeur dune srie
crire un programme calculant la somme des n premiers termes de la "srie harmonique", cest--dire la somme : 1 + 1/2 + 1/3 + 1/4 + ..... + 1/n La valeur de n sera lue en donne.

Programmation en Java

Anne Acadmique 2010-2011

37

Gnralits sur Java

Java & la Programmation Orient Objet

Java & la Programmation Evnementielle


. .

Les bases du langage Java


Quelques exercices : Exo3: dessin dun triangle en mode texte
crire un programme qui affiche un triangle isocle form dtoiles. La hauteur du triangle (cest--dire son nombre de lignes) sera fourni en donne, comme dans lexemple ci-dessous. On sarrangera pour que la dernire ligne du triangle saffiche sur le bord gauche de lcran. combien de lignes ? 8 * *** ***** ******* ********* *********** ************* ***************.
Anne Acadmique 2010-2011

Programmation en Java

38

Plan du cours

Programmation en Java

I. Gnralits sur Java II. Java et la Programmation Oriente Objet


i. .

III. Java et la Programmation Evnementielle

Anne Acadmique 2010-2011

39

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


1. Quelques dfinitions
La notion de classe gnralise celle de type vue en C La notion dobjet gnralise celle de variable. Un type classe donn permet de crer un ou plusieurs objets. Un objet est une entit de classe qui contient des donnes qui dfinissent son tat (on les appelle des attributs ou proprits) et des fonctions (on les appelle des mthodes). En POO, les attributs ou donnes dune classe ne peuvent tre accdes quen utilisant les mthodes de cette classe. On parle alors de l Encapsulation.
Nom de la Classe ses donnes ou attributs

Programmation en Java

Ses mthodes
Anne Acadmique 2010-2011

40

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Bases de la POO
1. La notion de classe par lExemple
On dfinit une classe Point destine manipuler les points dun plan.

Programmation en Java

Proprits de la classe

Mthodes de la classe

Anne Acadmique 2010-2011

41

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


2. Mode daccs aux champs dune classe
Les membres ou champs d'une classe peuvent tre des donnes ou des mthodes . Ces champs peuvent avoir l'un des trois attributs suivants : priv Un champ priv (private) n'est accessible que par les seules mthodes internes de la classe public Un champ public est accessible par toute fonction dfinie ou non au sein de la classe protg Un champ protg (protected) n'est accessible que par les seules mthodes internes de la classe ou d'un objet driv (voir ultrieurement le concept d'hritage).

Programmation en Java

Anne Acadmique 2010-2011

42

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


2. Mode daccs aux champs dune classe (suite)
Rq: En gnral, les donnes d'une classe sont dclares prives (on parle alors d Encapsulation des donnes dune classe)alors que ses mthodes sont dclares publiques. Cela signifie que l'utilisateur d'un objet (le programmeur): n'aura pas accs directement aux donnes prives de l'objet pourra faire appel aux mthodes publiques de l'objet et notamment celles qui donneront accs ses donnes prives.
Syntaxe gnrale :

Programmation en Java

Anne Acadmique 2010-2011

43

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


3. L'oprateur new
Point a; ne rserve pas un emplacement pour lobjet a mais juste une rfrence un objet de type Point.

Programmation en Java

? x ? y

Lallocation de lemplacement sera fait sur demande explicite avec le mot cl new a = new Point();
Anne Acadmique 2010-2011

44

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


3. L'oprateur new

Programmation en Java

Anne Acadmique 2010-2011

45

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


4. Le mot-cl this
Sert enlever la confusion lorsque les champs de la classe et les paramtres dune mthode ont les mmes noms

Programmation en Java

Anne Acadmique 2010-2011

46

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


5. Sur dfinition des mthodes dune classe
On peut redfinir une mme mthode en changeant ses arguments.

Programmation en Java

Anne Acadmique 2010-2011

47

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


6. Les Constructeurs

Programmation en Java

Anne Acadmique 2010-2011

48

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


6. Les Constructeurs (suite)
Un Constructeur est une mthode qui porte le nom de la classe Il na pas de type de retour ni mme un void Il est appel lors la cration dun objet de la classe Il permet dinitialiser les champs dune classe Une fois un constructeur est dfinit dans une classe , le constructeur par dfaut nest plus accept. (Erreur de compilation)

Programmation en Java

Anne Acadmique 2010-2011

49

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


6. Les Constructeurs (suite)
On peut dfinir plusieurs constructeurs pour une classe donne

Programmation en Java

Anne Acadmique 2010-2011

50

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


7. Les Rfrences dobjets
On peut dfinir plusieurs constructeurs pour une classe donne

Programmation en Java

Anne Acadmique 2010-2011

51

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


8. Mthodes de lecture et d'criture des attributs privs ( les Accesseurs et les Modificateurs)
Pour accder la valeur dun champ dclar priv depuis une autre classe on utilise des accesseurs (getters) Pour modifier sa valeur on utilise des modificateurs (setters) Convention de nommage : Accesseurs :public type getXXX(){
return XXX; }

Programmation en Java

Modificateurs :public void setXXX( type a ){


XXX = a; }
Anne Acadmique 2010-2011

52

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


6. LEncapsulation
Rgles Dfinir un constructeur par dfaut Maintenir private les donnes internes la classe Dfinir des mthodes public permettant daccder aux donnes internes getXxx ( ) et setXxx ( ) ; Toute classe Java qui respecte scrupuleusement ces rgles constitue un Java Bean (composant rutilisable)

Programmation en Java

Anne Acadmique 2010-2011

53

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


6. LEncapsulation (suite)
Intrts Scurit sur les donnes internes de la classe volutions transparentes pour les utilisateurs de vos classes Classes beaucoup plus autonomes Lisibilit du code accrue

Programmation en Java

Anne Acadmique 2010-2011

54

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


6. LEncapsulation (suite)

Programmation en Java

Anne Acadmique 2010-2011

55

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


7. Le ramasse-miettes (Garbage collector)
Java ne dispose pas de mot cls delete ou free pour librer la mmoire alloue dynamiquement par lappel new motLes objets Java sont automatiquement dtruits ds quils ne sont plus rfrencs Le ramasse miettes est excut par processus tournant en tche de fond ramasseOn peut indiquer Java que lon a plus besoin dun objet en donnant la valeur null une rfrence Rq : on peut appeler le garbage collector avec System. gc ( ) mais cest fortement dconseill. Le ramasse miettes se lancera automatiquement lorsque la mmoire manquera.
Anne Acadmique 2010-2011

Programmation en Java

56

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


8. Les finaliseurs
La mthode finalize Mthode appele automatiquement la destruction dun objet Ne sert pas dtruire lobjet mais rpercuter cette destruction sur dautres entits ( fermeture de fichiers, dconnexion ) destruction

Programmation en Java

Anne Acadmique 2010-2011

57

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


9. Variables et Mthodes dune Classe
Variables de classe
Le mot cl static Partages par toutes les instances dune mme classe

Programmation en Java

Anne Acadmique 2010-2011

58

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


9. Variables et Mthodes dune Classe
Constantes dune classe
Une variable de classe dclare final Par convention les constantes sont dclares en majuscules

Programmation en Java

Anne Acadmique 2010-2011

59

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


9. Variables et Mthodes dune Classe
Mthodes de classe
Le mot cl static Invoques depuis le nom de la classe et pas depuis une instance Le mot cl this ne peut pas tre utilis dans une mthode de classe motLa plus classique des mthodes de classe : la fonction main

Programmation en Java

Anne Acadmique 2010-2011

60

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


10. Contrle de visibilit
Il existe 4 niveaux de protection des champs et des mthodes d'une classe. package C'est le niveau par dfaut (pas de dclaration faire). La visibilit est limite aux classes du package courant. Les champs sont accessibles en lecture et criture. public La dclaration est introduite par le mot-cl public. Il n'y a aucune restriction d'accs. protected La dclaration est introduite par le mot-cl protected. Les champs et mthodes dclars protected sont visibles par toutes classes du package courant et toutes les sous-classes qu'elles fassent partie ou non du package. private La dclaration est introduite par le mot-cl private. Seule la classe peut voir les champs (encapsulation des donnes) et les mthodes dclars private. En gnral on prvoit des mthodes publiques d'accs aux donnes.

Programmation en Java

Anne Acadmique 2010-2011

61

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


11.Le mot-cl final

Programmation en Java

Il a l'effet suivant : pour une classe, il interdit d'en hriter pour une variable, il la rend constante pour une mthode, il interdit de la redfinir dans une sous-classe Note : les mthodes private sont dj final.

Anne Acadmique 2010-2011

62

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


Quelques exos: Exo1:
Raliser une classe Point permettant de reprsenter un point sur un axe. Chaque point sera caractris par un nom (de type char) et une abscisse (de type double). On prvoira : un constructeur recevant en arguments le nom et labscisse dun point, une mthode affiche imprimant le nom du point et son abscisse, une mthode translate effectuant une translation dfinie par la valeur de son argument. crire un petit programme utilisant cette classe pour crer un point, en afficher les caractristiques ,le dplacer et en afficher nouveau les caractristiques.
Anne Acadmique 2010-2011

Programmation en Java

63

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


Quelques exos: Exo2:
Raliser une classe Personne permettant de reprsenter une personne . Chaque personne sera caractris par un nom (de type char) , un numro de tl (de type char) et un ge ( de type int) On prvoira : des constructeurs , des accesseurs et des modificateurs une mthode affiche imprimant les donnes dune personne crire un petit programme utilisant cette classe pour crer un rpertoire tlphonique de personnes, en afficher les caractristiques, les ordonner selon le nom.

Programmation en Java

Anne Acadmique 2010-2011

64

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


12. LHritage

Programmation en Java

Anne Acadmique 2010-2011

65

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


12. LHritage

Programmation en Java

Le constructeur dune sous classe peut appeler le constructeur de la classe mre en utilisant le mot cl super Le mot cl super doit tre la premire ligne du code du constructeur de la sous classe Si lappel a super nest pas mentionn, le constructeur par dfaut de la classe mre est appel

Anne Acadmique 2010-2011

66

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


Exo : simulation dun jeu de D
Lise et Henri jouent aux ds. A chaque tour de jeu chacun lance un d et marque le nombre de points marqus par le ds. En utilisant deux classes score et d dj que nous allons construire, nous crirons les deux programmes de simulation suivants : 1- simuler dix tours et afficher le nom du gagnant (celui qui a le plus de points). 2- on ajoute la rgle : le premier qui atteint 21 points a gagn; simuler une partie et afficher le nom du gagnant.
Anne Acadmique 2010-2011

Programmation en Java

67

Gnralits sur Java | Java & la Programmation Oriente Objet

Java & la Programmation Evnementielle


. .

Gnralits sur la POO


Exo : simulation dun jeu de D (suite)
Classe Score : Crons un premier objet ou une premire classe qui reprsentera le score d'un joueur . Cette classe, nomme score, devra grer au moins trois donnes : le nom du joueur, son score, le score maximal autoris.

Programmation en Java

Anne Acadmique 2010-2011

68

Bibliographie et web graphie

Programmation en Java

I. Programmer en Java Claude Delannoy (Edition Eyrolles) II. Exercices en Java Claude Delannoy (Edition Eyrolles) III. www.developpez.com : I. APPRENTISSAGE DU LANGAGE JAVA II. Dveloppons en Java Jean Michael Doudoux

Anne Acadmique 2010-2011

69