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;
Advertisement
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;
Advertisement
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
Advertisement
" 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
Advertisement
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...