Programmation Orientée Objet en Java

Programming, Java, Object-Oriented Design · course

Voir tous les documents en programmation

Programmation Orient e Objet

en Java

Une br ve histoire de Java

(cid:1) Invent par Sun 1990s: r pondre 5 objectifs

(cid:1) utiliser une m thodologie orient e objet,

(cid:1) permettre un m me programme d' tre ex cut sur

plusieurs syst mes d'exploitation diff rents,

plusieurs syst mes d'exploitation diff rents,

(cid:1) pouvoir utiliser de mani re native les r seaux

informatiques,

(cid:1) pouvoir ex cuter du code distant de mani re s re,

(cid:1) tre facile utiliser et poss der les points forts des

langages de programmation orient s objet comme le

C++.

2

Java

(cid:1) Langage orient objet

(cid:1) Notions de classes, h ritage, &

(cid:1) Beaucoup doutils disponibles (packages)

(cid:1) JDK (Java Development Kit)

(cid:1) Historique

(cid:1) Sun Microsystems

(cid:1) Sun Microsystems

(cid:1) 1991: conception d'un langage ind pendant du

hardware

(cid:1) 1994: browser de HotJava, applets

(cid:1) 1996: Microsoft et Netscape commencent

soutenir

(cid:1) 1998: l dition Java 2: plus stable, norme librairie

3

Java c'est quoi ?

(cid:1) Java est un environnement de programmation objet d velopp par Sun,

adapt la distribution d'applications sur Internet.

(cid:1) 4 l ments :

(cid:1) Java est un langage de programmation objet

(cid:1) Une machine virtuelle

(cid:1) Des biblioth ques de classes ou des packages : API Application

Programming Interface (2500 classes dans Java 1.4)

(cid:1) Ensemble d'outils : java, javac, jdb javadoc, jar, ...

execution compilation debugger documentation archivage

4

Les outils pour Java

(cid:1) Le Java Development Kit de Sun (incluant une

machine virtuelle Java), disponible sur www.sun.com

(cid:1) Outils

(cid:1) java : JVM, interpr teur pour les programmes java

(cid:1) javac : Compilateur Java

(cid:1) appletviewer : JVM pour l'ex cution des applets

appletviewer : JVM pour l'ex cution des applets

(cid:1) jar : Cr ation et manipulation d 'archive java

(cid:1) javadoc : G n rateur de documentation Java au format HTML

(cid:1) javap : d sassembleur de classes Java compil es

(cid:1) jdb : d bogueur Java en ligne de commande

(cid:1) javah : g n re le header C ou C++ pour cr er un pont compatible entre

java et C/C++

5

Java : principe fondateur de sa portabilit

"write once, run everywhere"

6

Langages compil s et limitations

fichier

source du

programme

Compilation

L gende

Ind pendant de la

machine

D pendant de la

machine

Ex cutable

Ex cutableEx cutable

Ex cutable

Ex cutable

Unix

Linux

Windows

MacOS

PalmOS

Architecture 1

Risc 6000

Architecture 2

Intel x86

Architecture 3

Mac G5

Architecture 4

Intel xScale

7

Portabilit

(cid:1) Notion de portabilit

Capacit d'un programme tre ind pendant du

syst me d'exploitation et de l'architecture machine

Impossible !

Programme

portable

Unix

Linux

Windows

Architecture 1

Risc 6000

Architecture 2

Intel x86

8

Java et la portabilit

(cid:1) Solution propos e:

Construire une machine virtuelle:

(cid:1) joue le r le de plateforme virtuelle

(cid:1) d pendante de l'architecture machine et du SE

(cid:1) op re un langage machine virtuel ind pendant de

(cid:1) op re un langage machine virtuel ind pendant de

l'architecture r elle et du SE r el

Code source Java

Programme Java

Machine virtuelle

SE / Architecture

9

Pseudo-Langage interpr t

Sch ma du principe Java

fichier source du

programme

Compilation

Programme Java

Programme Java

Programme

portable !

Machine virtuelle

Machine

virtuelle

Machine

virtuelle

Machine virtuelle

Machine virtuelle

Unix

Linux

Windows

MacOS

PalmOS

Architecture 1

Risc 6000

Architecture 2

Intel x86

Architecture 3

Mac G5

Architecture 4

Intel xScale

10

Compilation en Java bytecode

(cid:1) En Java, le code source nest pas traduit

directement dans le langage de lordinateur

(cid:1) Il est dabord traduit dans un langage appel

bytecode , langage dune machine virtuelle

bytecode , langage dune machine virtuelle

(JVM ; Java Virtual Machine) d finie par Sun

(cid:1) Ce langage est ind pendant de lordinateur

qui va ex cuter le programme

11

La compilation fournit du bytecode

(cid:1) Programme Java

(cid:1) Compilateur: javac

Programme source

PremiereAppli.java

(cid:1) Programme en bytecode,

ind pendant de l'ordinateur

compilateur

12

Bytecode

PremiereAppli.class

Java Virtual Machine

(cid:1) Les syst mes qui veulent pouvoir ex cuter un

programme Java doivent fournir une JVM

(cid:1) A l'heure actuelle, tous les syst mes ont une

JVM (Linux, Windows, MacOs,&)

(cid:1) Il existe aussi depuis peu quelques JVM en

Il existe aussi depuis peu quelques JVM en

dur , sous forme de processeurs dont le

langage natif est le bytecode ; elles sont

rarement utilis es (en raison de la portabilit )

13

Le bytecode peut tre ex cut par

n'importe quelle JVM

Bytecode:

PremierAppli.class

JVM sous Lunix

JVM sous MacOs

JVM sous Windows

(cid:1) Si un syst me poss de une JVM, il peut ex cuter

tous les fichiers .class compil s sur n'importe

quel autre syst me

14

Le bytecode peut tre ex cut

par n'importe quelle JVM

Fichiers

Fichiers

.java

Fichiers

Fichiers

.class

JVM Linux

Compilateur Java

JVM Windows

15

Avantages de la JVM pour

Internet

(cid:1) Gr ce sa portabilit , le bytecode d'une classe peut tre charg

depuis une machine distante du r seau, et ex cut e par une

JVM locale

(cid:1) La JVM fait de nombreuses v rifications sur le bytecode avant

son ex cution pour sassurer quil ne va effectuer aucune action

dangereuse

(cid:1) La JVM apporte donc

(cid:1) La JVM apporte donc

de la souplesse pour le chargement du code ex cuter

mais aussi de la s curit pour l'ex cution de ce code

(cid:1) Les v rifications effectu es sur le bytecode et l' tape

d'interpr tation de ce bytecode (dans le langage natif du

processeur) ralentissent l'ex cution des classes Java

(cid:1) Les techniques Just In Time (JIT) ou

Hotspot r duisent ce probl me : elles permettent de ne traduire

qu'une seule fois en code natif et la vol e les instructions qui

sont ex cut es

16

Applications ind pendantes

et applets

(cid:1) Java permet de d velopper deux sortes de

programmes:

(cid:1) Applets ex cut es dans lenvironnement/JVM dun

(cid:1) Applets ex cut es dans lenvironnement/JVM dun

navigateur Web et charg es par une page HTML

(cid:1) Applications ind pendantes avec ou sans interface graphique

17

Applet

(cid:1) Objet de la classe Java Applet, r f renc dans

une page Web ( crite dans le langage HTML)

(cid:1) Le lancement d'une applet se fait quand la partie

de la page Web qui r f rence l'applet est affich e

par le client Web

par le client Web

18

Exemple de page Web qui

contient une applet

<HTML>

<HEAD>

<TITLE> Une applet </TITLE>

</HEAD>

<BODY>

<H2> Ex cution dune applet </H2>

<APPLET code="HelloApplet.class"

<APPLET code="HelloApplet.class"

width=500

height=300>

Votre navigateur ne peut ex cuter une applet

</APPLET>

</BODY>

</HTML>

Dimensions de l'emplacement

r serv l'affichage de l'applet

19

import java.awt.Graphics;

import java.applet.Applet;

Publicité

public class HelloApplet extends Applet {

public void paint(Graphics g) {

public void paint(Graphics g) {

g.drawString("Hello world", 50, 25);

}

Zone o commencera

l'affichage : x = 50 pixels,

y = 25 pixels

}

20

Repr sente lemplacement

de la page Web o lapplet

saffichera

tapes pour lex cution dune

applet

Client

Client

HTTP

1. Demande chargement page

Web qui contient une applet

Web qui contient une applet

2. Chargement de la page Web

de la classe de lapplet

Serveur

Serveur

HTTP

Ex cution de lapplet

Dans la JVM du client

21

Remarques

(cid:1) Le navigateur a sa propre machine virtuelle

(cid:1) Un programme Java sp cial d marr par le

navigateur va lancer certaines m thodes de la

navigateur va lancer certaines m thodes de la

classe Applet : init(), start(), stop(), destroy(),

paint()

(cid:1) init() est ex cut seulement quand lapplet

est lanc e pour la premi re fois

(cid:1) paint() dessine l'applet dans la page Web

22

Ex cution de lapplet

(cid:1) Soit:

(cid:1) A partir du navigateur

(cid:1) A partir de lappletviewer

(cid:1) A partir de lappletviewer

(cid:1) Javac HelloApplet.java ->

HelloApplet.class

(cid:1) Appletviewer HelloApplet.html

23

Utilit des applets

(cid:1) Les applets permettent de faire des pages

Web plus riches (gr ce aux possibilit s

offertes par Java)

(cid:1) La page Web peut contenir

(cid:1) La page Web peut contenir

des animations ou des mises en forme complexes

pour mettre en valeur certaines informations

des r sultats de calculs complexes

des informations dynamiques (pas connues au

moment o la page Web statique est cr e)

trouv es en interrogeant une base de donn es

24

Applications :la console vs G.U.I

Programme interface

console

Programme interface

graphique : GUI

(Graphical User Interface)

Lutilisateur fournit des infos au clavier

sous forme de lignes de texte. Le

programme d cide du s quencement

des op rations. Lop rateur est sollicit

au moment voulu.

Linteraction programme-op rateur se

fait essentiellement via des composants

graphiques. Cest la programmation

v nementielle :le programme r agit

des v nements provoqu s par lutilisa-

teur.

25

Application ind pendante

Ex cution de la classe de lancement de lapplication

(dite classe principale ; main en anglais) ;

java lance linterpr tation du code de la

m thode main() dune classe bien d termin e

m thode main() dune classe bien d termin e

Exemple:

public class HelloWorld { public static void

main(String[] args) { System.out.println("Hello

World!"); } }

26

Structure dune application

(cid:1) Placer une classe

dans un fichier source

(cid:1) Placer les m thodes

dans une classe

(cid:1) Placer les instructions

(cid:1) Placer les instructions

dans les m thodes

Fichier source

Fichier de classes

M thode 1

instructions

M thode 2

instructions

27

Mise en Suvre

28

Architecture g n rale dun programme Java

(cid:1) Programme source Java = ensemble de fichiers

.java

(cid:1) Chaque fichier .java contient une ou plusieurs

Chaque fichier .java contient une ou plusieurs

d finitions de classes

(cid:1) Au plus une d finition de classe public par fichier

.java avec nom du fichier = nom de la classe

publique

29

Structures dun programme en Java

30

Structures dun programme en Java

31

Comment d velopper une

application?

Deux fa ons d crire des programmes Java:

(cid:1) En crivant le code dans un simple diteur de texte

(cid:1) Compilation et ex cution du code en ligne de commande DOS

(cid:1) En utilisant un environnement de d veloppement (IDE)

(cid:1) Eclipse

(cid:1) Netbeans (http://www.netbeans.com)

(cid:1) Borland JBuilder (http://www.borland.com/jbuilder)

(cid:1) IBM WebSphere Studio

(http://www.ibm.com/software/awdtools)

(cid:1) Sun ONE Studio (http://wwws.sun.com/software/sundev)

(cid:1) Microsoft .Net Studio (http://msdn.microsoft.com/vstudio)

(cid:1) & Crimson Editor

32

Les outils Java

33

Une premi re application

Application HelloWorld

(cid:1) Cr er un fichier texte : HelloWorld.java

(cid:1) R gle de bonne pratique : 1 classe par fichier et 1 fichier

par classe

public class HelloWorld

public static void main (String[]args)

La premi re ligne du programme doit tre la

d claration de la classe

Tout programme doit contenir une m thode

main qui porte la signature ci-contre

main qui porte la signature ci-contre

System.out.println("Hello the World");

crire l cran Hello the World

Fermer les accolades

{

}

{

{

}

" Compiler le programme : javac HelloWorld.java

" Le compilateur g n re le bytecode dans le fichier : HelloWorld.class

" Ex cuter lapplication : java HelloWorld

" Hello the World saffiche l cran

34

Syntaxe de Java

(cid:1) Le code est crit dans des blocs :

(cid:1) d limit s par { }

(cid:1) qui peuvent tre imbriqu s

(cid:1) Les commentaires :

(cid:1) Sur une seule ligne : // mon commentaire

(cid:1) Sur plusieurs lignes : / /

(cid:1) Les constantes sont d finies avec le mot cl final :

leur valeur ne peut pas tre modifi e: final double

pi=3.14 ;

(cid:1) Types primitifs: int, long, float, double, char, String,

boolean,..

35

Types Primitifs de Java

36

Initialisation

37

Types de donn es primitifs

(cid:1) Explication:

(cid:1) byte : cod sur 8 bits (cid:1) 28 valeurs (cid:1) (27) to (271) = -128 127

(cid:1) int : cod sur 32 bits (cid:1) 232 valeurs (cid:1) (231) to (2311)

(cid:1) D claration et initialisation :

int x=12;

short x= 32; (short x=33000; // Hors limite)

(cid:1) int

(cid:1) short

(cid:1) long long x= 200L; // Nombre accol un L

(cid:1) long long x= 200L; // Nombre accol un L

(cid:1) byte

(cid:1) double

(cid:1) float

(cid:1) char

(cid:1) boolean

byte x=012; // Nombre commen ant avec un 0

double x=23.2323;

float x= 23.233F; // Nombre accol un F

char c=a; char c=\u0061; char c=(char)97;

boolean b=true;

38

Conversion

(cid:1) V rification de typage utilise toujours le type apparent

(cid:1) cast

(cid:1) (nom dune classe) expression

(cid:1) Conversion implicite des valeurs dun type en un autre

(cid:1) Seulement pour les types primitifs

(cid:1) Seulement pour les types primitifs

(cid:1) Ordre croissant de g n ralit

(cid:1) byte -> short -> int -> long -> float -> double

(cid:1) i = l

(cid:1) l = i

(cid:1) int = char

(cid:1) char = int

illegal

legal

legal

illegal

39

Conversions de types

40

Conversions de types

41

Op rateurs

42

Op rateurs

43

Condition et test

(cid:1) Une condition correspond vrai ou faux

(cid:1) E.g. (age < 50)

(cid:1) Tester une condition:

if condition A; else B;

(cid:1) si condition est satisfaite, alors on fait A;

(cid:1) si condition est satisfaite, alors on fait A;

(cid:1) sinon, on fait B

(cid:1) E.g. if (age < 65)

System.out.println("jeune");

else

System.out.println("vieux");

44

Attention:

un ; apr s le for( ), it re sur la condition, et somme

ne sera incr ment e quune seule fois

Attention:

i nest d clar e ici qu

lint rieur de la boucle for

Boucle

(cid:1) Pour traiter beaucoup de donn es en s rie

(cid:1) Sch mas

(cid:1) Boucle for

int somme = 0;

for (int i = 0; i<10; i++) somme = somme + i;

(cid:1) Boucle while

int somme = 0;

int somme = 0;

int i = 0;

Publicité

while (i<10) { somme = somme + i;

i++;

(cid:1) Que font ces deux boucles?

}

Sch ma dex cution

somme=0;

i=0;

i<10?

i<10?

oui

non

somme=somme+i;

i++;

i:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

somme: 0

0, 1, 3, 6, 10, 15, 21, 28, 36, 45, sortie

45

Boucle

(cid:1) do A while (condition)

(cid:1) Faire A au moins une fois

(cid:1) Tester la condition pour savoir sil faut refaire A

int somme = 0;

int i = 15;

while (i<10) { somme = somme + i;

i++;

}

}

somme = 0

int somme = 0;

int i = 15;

do { somme = somme + i;

i++;

}

while (i<10)

Sch ma dex cution

somme=0;

i=15;

i<10?

oui

non

somme=somme+i;

i++;

Sch ma dex cution

somme=0;

i=15;

somme=somme+i;

i++;

somme = 15

46

i<10?

oui

non

Les tableaux en Java

47

Les tableaux

(cid:1) On peut d finir un tableau sur tous les types java ( types

primitifs, classes, interfaces, tableaux ).

(cid:1) Syntaxe de d finition d'un tableau :

type [ ] nom;

(cid:1) Un tableau est un objet qui contient un attribut indiquant sa taille

: length

int [ ] tab = new int[50];

System.out.println("Taille du tableau " + tab.length );

48

Tableau

Attention:

Array

Array list

String

a.length

a.size()

a.length()

(cid:1) Pour stocker une s rie de donn es de m me nature

(cid:1) D claration

int [] nombre; // une s rie de valeurs int dans le tableau nomm nombre

String [][] etiquette; // un tableau deux dimensions de valeurs String

(cid:1) Cr ation

nombre = new int[10]; // cr e les cases nombre[0] nombre[9]

nombre = new int[10]; // cr e les cases nombre[0] nombre[9]

etiquette = new String[3][5]; // cr e etiquette[0][0] etiquette[2][4]

int[] primes = {1, 2, 3, 5, 7, 7+4}; // d clare, cr e de la bonne taille et initialise

(cid:1) Utilisation

nombre[0] = 4;

for (int i=1; i<nombre.length; i++) nombre =nombre +1;

etiquette[2][3] = "un texte";

String texte = etiquette[2][3];

49

Tableaux : D claration

50

Tableaux : Dimensionnement

51

Tableaux : Initialisation

52

Tableaux en Java : Synth se

53

Tableaux multidimensionnel

54

Pr cision sur system.out.

55

Mise en forme

56

Les classes en Java

Architecture g n rale dun

programme Java

(cid:1) Programme source Java = ensemble de fichiers

.java

(cid:1) Chaque fichier .java contient une ou plusieurs

d finitions de classes

d finitions de classes

(cid:1) Au plus une d finition de classe public par fichier

.java avec nom du fichier = nom de la classe

publique

public class NomDeClasse

(cid:1) Si plus dune classe dans un fichier .java, javac

g n re des fichiers .class s par s pour chaque

classe

58

2 classes dans 2 fichiers

/ Mod lise un point de coordonn es x, y /

public class Point {

private int x, y;

public Point(int x1, int y1) {

x = x1; y = y1;

}

public int getx(){return x;}

public double distance(Point p) {

return Math.sqrt((x-p.x)(x-p.x) + (y-p.y)(y-p.y));

}

Fichier TestPoint.java

}

/ Pour tester la classe Point /

public class TestPoint {

public static void main(String[] args) {

Point p1 = new Point(1, 2);

int abs = p1.getx( );

Fichier Point.java

C'est la m thode

interpr t e lors de

l'ex cution, l'entr e.

Elle est static : ne

n cessite pas de cr ation

d'objet pour tre invoquable

Point p2 = new Point(5, 1);

System.out.println("Distance : " + p1.distance(p2));//Afficher sur la sortie standard

}

}

59

Classes en Java

On appelle classe la structure d'un objet, c'est- -dire la d claration de

l'ensemble des entit s qui composeront un objet.

Un objet est donc issu d'une classe, c'est le produit qui sort d'un moule.

En r alit on dit qu'un objet est une instanciation d'une classe

objet = instance

Une classe est compos e de deux parties :

"Les attributs (parfois appel s donn es membres) : il s'agit des

donn es repr sentant l' tat de l'objet

"Les m thodes (parfois appel es fonctions membres): il s'agit des

op rations applicables aux objets

60

Structure d'une classe

" Chaque classe peut avoir :

des attributs : ce sont des variables d clar es dans le corps de la

classe

des m thodes : c'est le comportement de la classe, les

fonctionnalit s qu'elle propose

" La m thode comporte une signature :

visibilit (public, protected, private ou defaut)

type de retour (void pour indiquer qu'il n'y a pas de retour)

nom de m thode

arguments

public class Employe{

Lev e possible d'exception (throws)

int age = 23 ; //Attribut ou membre de classe

public void poserConge(String dateDebut, String dateFin){

//Traitements r alis s par la fonctionnalit poser cong

}

}

61

D claration de la classe

public class Chemise

{

/D claration des attributs/

/D claration des m thodes/

/D claration des m thodes/

//commentaire sur une seule ligne

/*commentaires sur

plusieurs lignes*/

}

" Le fichier .java doit avoir le m me nom que la classe (Chemise.java)

" Le nom de la classe doit commencer par une majiscule

62

Notation Camel Case. Exemple: CompteBancaire, AgenceVoyage

Les constructeurs

Pour cr er un objet partir d'une classe,

on utilise l'op rateur new.

public class Test{

public static void main(String[] args){

Lop rateur new fait appel au

constructeur de la classe

Chemise maChemise;

Chemise maChemise;

class Chemise{

class Chemise{

maChemise=new Chemise();

Chemise () {}

}

}

}

(cid:2)un constructeur porte le m me nom que la classe dans laquelle il est d fini

(cid:2)un constructeur n'a pas de type de retour (m me pas void)

63

Les constructeurs

(cid:3) Constructeur par d faut

Chemise(){}

Chemise(){

Le constructeur par d faut initialise les

variables de la classe aux valeurs par

d faut.

id=0;

id=0;

couleur=B

prix=10.2f;

}

(cid:3) Constructeur surcharg

Chemise(int id, char couleur, float prix){

this.id=id;

this.couleur=couleur;

this.prix=prix;

64

}

Les constructeurs

(cid:1) L'appel de new pour cr er un nouvel objet d clenche, dans

l'ordre :

(cid:1) L'allocation m moire n cessaire au stockage de ce nouvel

objet et l'initialisation par d faut de ces attributs,

(cid:1) L'initialisation explicite des attributs, s'il y a lieu,

(cid:1) L'ex cution d'un constructeur.

(cid:1) L'ex cution d'un constructeur.

(cid:1) Un constructeur est une m thode d'initialisation.

public class Application

{

public static void main(String args[])

{

Personne jean = new Personne()

jean.setNom("Jean") ;

} }

65

Le constructeur est ici celui

par d faut (pas de

constructeur d fini dans

la classe Personne)

Les constructeurs

" Si vous ne cr ez pas un constructeur dans votre classe, le compilateur va

automatiquement vous cr er un constructeur par d faut implicite

" Si le constructeur surcharg est cr , le constructeur par d faut implicite ne sera

plus cr er par le compilateur

" La plateforme java diff rencie entre les diff rents constructeurs d clar s au

Publicité

" La plateforme java diff rencie entre les diff rents constructeurs d clar s au

sein dune m me classe en se basant sur le nombre des param tres et leurs

types.

On ne peut pas cr er deux constructeurs

ayant le m me nombre et types des

param tres.

Chemise(int id) {

this.id=id

}

Chemise(int id) {

this.id=id*2

}

Erreur de compilation

66

Les constructeurs

Personne.java

public class Personne

{

public String nom;

public String prenom;

public int age;

public int age;

public Personne(String unNom,

String unPrenom,

int unAge)

{

nom=unNom;

prenom=unPrenom;

age = unAge;

}

}

Va donner une erreur la compilation

D finition dun

Constructeur. Le

constructeur par d faut

(Personne() )nexiste plus.

Le code pr c dent occasionnera

une erreur

une erreur

public class Application

{

public static void main(String

args[])

{

Personne jean = new Personne()

jean.setNom("Jean") ;

} }

67

Les constructeurs

Quel constructeur va choisir Java lorsque vous allez cr er votre objet ?

class Chemise{

int id;

char couleur;

float prix;

String description;

int quantite;

int quantite;

Chemise () {}

Chemise(int id) {

this.id=id;

}

Utilisation:

Utilisation:

Chemise ch1=new Chemise();

Chemise ch1=new Chemise(122);

Chemise(int id, char couleur) {

Chemise ch1=new Chemise(122, B);

this.couleur=couleur;

}

}

68

Destructeur

le programmeur java na pas soccuper lui-m me de lib rer la m moire en

supprimant les objets devenus inutiles, cest le r le du Garbage Collector

Le Garbage Collector est ex cut automatiquement d s que la m moire

disponible devient inf rieure un certain seuil.

disponible devient inf rieure un certain seuil.

Le destructeur est une m thode sp ciale qui sera appel e lorsque

l'objet sera nettoy de la m moire par le Garbage Collector.

Java Destructor finalize()

69

D claration des variables

Syntaxe:

type nom_variable [=value];

int id = 0;

Quel nom choisir pour notre variable?

Quel nom choisir pour notre variable?

Les noms des variables sont case-sensitive

Les white space ne sont pas permis

vitez les mots r serv s de java

" Le nom de la variable doit commencer

par une lettre minuscule.

Notation Camel Case. Exemple: age, quantiteStock

70

D claration des variables

Constante

"On d clare une constante avec le mot final

Exemple:

final int MAX_STOCK=100;

"Le nom de la constante doit tre en majuscule.

"Si le nom est compos de plusieurs mots, on utilise _ pour la

s paration des mots

Exemple:

final int TAILLE;

final int MAX_STOCK;

final int CAPACITE_DANS_STOCK;

71

D claration des variables

Les types entiers

byte

short

short

int

long

Valeur minimale

Valeur maximale

Cod sur

  • 128
  • 32 768
  • 32 768

127

32767

32767

  • 2147 483 648

2 147 483 647

-

922337203685477

5808

922337203685477

5807

8 bits

16 bits

16 bits

32 bits

64 bits

72

D claration des variables

Les types r els

Valeur minimale

Valeur maximale

Cod sur

float

double

double

1.4E45

4.9E3

4.9E3

3.4028235E38

1.7976931348623

1.7976931348623

157E308

4 octets

8 octets

8 octets

Exemple:

float f=1.2f

double d=34.8d

73

D claration des variables

Le type caract re char

char sexe=M;

Le type boolean

boolean abonne=true;

boolean abonne=true;

Le type chaine de caract re String

String message = Bonjour les amis;

74

D claration des variables

Le tableaux

1er indice

int[] tab;

tab = new int[5];

tab[0] = 10; // initialiser le premier l ment

tab[0] = 10; // initialiser le premier l ment

tab[1] = 20; // initialiser le second l ment

0 1 2 3 4

indices

10 20

tab.length=5

tab.length=5

int[] tab = { 10, 20, 30, 40, 50}; //d claration + initialisation

75

D claration des variables

Les valeurs par d faut des variables

Type

byte

short

short

int

long

float

double

char

boolean

76

Valeur par d faut

0

0

0

0

0L

0.0f

0.0d

'\u0000'

false

Cat gories des variables

Il existe deux sortes de variables :

"Une variable primitive contient des bits qui repr sentent sa valeur.

Exemple : int, foat , boolean.

"Une variable r f rence contient des bits qui indiquent comment

acc der l'objet.

Exemple : String, Chien, Joueur,...

77

Cat gories des variables

Les variables primitives

78

Cat gories des variables

Les variables primitives

"D claration dune variable primitive r servation de lespace m moire.

int age;

boolean abonne;

boolean abonne;

char sexe;

age

abonne

sexe

"La valeur affect e la variable sera stock e dans lespace m moire r serv .

age=18;

abonne=false;

sexe=M;

79

age

abonne

sexe

1818

false

false

MM

Cat gories des variable

Les variables r f rences

80

Cat gories des variables

Les variables r f rences: String

"on cr e une r f rence sur une String

"Lorsquon d clare une variable objet , on est en fait entrain de faire la r servation

de lespace m moire pour la r f rence

String message;

message=Bonjour;

// quivalent

message=new String(Bonjour);

message=Hello;

81

message

refref

refref

message

refref

message

refref

Publicité

objet null

null

null

objet String

Bonjour

objet String

Bonjour

Hello

Cat gories des variables

Les variables r f rences: Les tableaux

"Un tableau contenant des l ments de type primitif

int[] notes={10,12,15};

notes

reference

"Un tableau contenant des l ments de type objet

String[] animaux={chat,poisson};

objet int [ ]

1010

int

int

1212

int

int

1515

int

int

objet String

objet String

chat

poisson

animaux

reference

refref

refref

82

Cat gories des variables

R capitulation sur les types objets et les types primitifs

83

D claration des m thodes

Syntaxe:

Type_retour nom_method( )

{

}

Exemple:

Exemple:

void afficherInfoChemise (){

}

Le nom de la m thode doit commencer par un verbe

84

Classe chemise

public class Chemise{

int id;

char couleur;

float prix;

String description;

int quantite;

void ajouterChemise (int nombre) {

quantite += nombre;

}

}

void dimunierChemise (int nombre) {

quantite - = nombre;

}

void afficherInfoChemise() {

System.out.println(id+ info);

}

}

85

Le mot-cl this

Le mot-cl this permet de d signer lobjet courant,

this permet d'acc der aux attributs et m thodes de lobjet courant

(cid:3) Pour manipuler un attribut de lobjet courant:

this.couleur

this.couleur

(cid:3) Pour manipuler une m thode de la super-classe :

this.ajouterChemise (100)

(cid:3) Pour faire appel au constructeur de lobjet courant:

this()

86

La classe Montre, un peu de syntaxe

class UnNomdeClasse { / le corps / }

" class indique la d finition d'une classe nomm e

Montre.

" Un nom de classe commence par une majuscule

" Le mot-cl public indique que la classe est utilisable

public class Montre {

/D finissons les attributs/

private int heure , minute ;

private int heure , minute ;

de l'ext rieur .

" Les attributs sont typ s (int) :

" Les attributs sont typ s (int) :

/ D finissons les m thodes/

public int getHeure() {

return heure;

}

public int getMinute() {

return minute;

}

public void setMinute(int m) {

minute = m;

}

public void setHeure(int h) {

heure = h;

}

}

87

<Type> nomAttribut = valeurInit;

" La syntaxe g n rale pour d finir une m thode :

<Type retour> nomMethode (<listeparam tres>)

" Les noms de m thodes et attributs commencent par

une minuscule, la fronti re des mot est marqu e par

une majuscule.

" Tout ce qui est entre / et / est un commentaire

(pouvant aller sur plusieurs lignes).

" // commentaire jusqu' la fin de la ligne

Surcharge

(cid:1) Deux m thodes membres qui

(cid:1) appartiennent la m me classe

(cid:1) portent un identificateur identique (m me nom de

fonction)

(cid:1) poss dent des param tres diff rents

(cid:1) poss dent des param tres diff rents

sont des m thodes surcharg es

88

Surcharge

(cid:1) Exemple:

Un point g om trique peut tre d fini par:

(cid:1) ses coordonn es donn es explicitement

(cid:1) ses coordonn es donn es explicitement

Point (int i, int j) {

x=i;

y=j;

}

(cid:1) un autre Point

Point (Point p) {

x=p.x;

y=p.y;

}

89

Surcharge

(cid:1) Exemple (suite):

(cid:1) des coordonn es par d faut

Point () {

x=0;

x=0;

y=0;

}

Soit:

Point (int i, int j)

Point (Point p)

Point ()

90

3 m thodes portant des signatures diff rentes

Surcharge

(cid:1) Attention:

Pas de diff renciation sur le type de retour

Exemple:

(cid:1) int f (int v)

et

(cid:1) double f (int v)

ne sont pas diff rentiable

91

Les attributs static

Variable dinstance:

Chaque instance de la classe poss de

ses propres valeurs des variables.

Class Etudiant{

String nom;

String nom;

Etudiant

Etudiant(String nom){

this.nom=nom;

}

}

Etudiant

Etudiant

nom

Ahmed

nom

Marwa

Etudiant etud1 = new Etudiant (Ahmed");

Etudiant etud2 = new Etudiant (Marwa");

92

Les attibuts static

Variable dinstance:

Utilisation

On invoque les variables dinstance avec le nom de linstance

Class Etudiant{

String nom;

String nom;

class Test{

public static void main(String[] args){

public static void main(String[] args){

Etudiant(String nom){

this.nom=nom;

}

}

}

}

Etudiant etudiant=new Etudiant();

System.out.println(etudiant.nom);

93

Les attibuts static

Variable de classe:

"n'appartient pas une instance particuli re, elle

appartient la classe.

"est partag e par toutes les instances de la classe

Etudiant

nbrEtudiants

123

0

Etudiant

nom

Ahmed

Etudiant

nom

Fatma

Etudiant

nom

Marwa

Class Etudiant{

String nom;

String nom;

static int nbrEtudiants;

Etudiant(String nom){

this.nom=nom;

nbrEtudiants++;

}

}

Etudiant etud1 = new Etudiant (Ahmed");

Etudiant etud2 = new Etudiant (Marwa");

Etudiant etud3 = new Etudiant (Fatma");

94

Les attibuts static

Variable de classe:

Utilisation

On invoque les variables static avec le nom de la classe

class Etudiant{

String nom;

String nom;

static int nbrEtudiants;

class Test{

public static void main(String[] args){

Etudiant(String nom){

this.nom=nom;

nbrEtudiants++;

}

}

}

System.out.println(Etudiant.nbrEtudiants);

}

95

Les m thodes static

Le comportement dune m thode statique ne d pend pas de la valeur d...