Académique Documents
Professionnel Documents
Culture Documents
Les Bases Java
Les Bases Java
J. Sopena (INRIA/UPMC)
1 / 151
La surcharge.
Les constructeurs.
Le mcanisme
dinstanciation.
Constructeur par dfaut.
Plusieurs constructeurs.
Excutable Java.
Coder un executable.
Compilation.
Structuration des sources.
Des classes utiles.
La classe String
Les tableaux.
Les enveloppes.
2 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
3 / 151
J. Sopena (INRIA/UPMC)
4 / 151
5 / 151
Java pourquoi ?
J. Sopena (INRIA/UPMC)
6 / 151
J. Sopena (INRIA/UPMC)
7 / 151
http://java.sun.com.
gratuit.
I
I
I
I
le
le
le
le
compilateur.
compilateur la vol "JIT".
dbogueur.
gnrateur de documentation.
NetBeans : http://www.netbeans.org/
Eclipse : http://www.eclipse.org/
J. Sopena (INRIA/UPMC)
8 / 151
J. Sopena (INRIA/UPMC)
9 / 151
Tout se complique
Attention, avec larrive de la GPL tout se complique :
J. Sopena (INRIA/UPMC)
10 / 151
J. Sopena (INRIA/UPMC)
11 / 151
J. Sopena (INRIA/UPMC)
12 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
13 / 151
Filiation historique :
I
I
Java est trs proche du langage C++ (et donc du langage C).
Toutefois Java est plus simple que le langage C++, car les
points "critiques" du langage C++ (ceux qui sont lorigine
des principales erreurs) ont t supprims.
Cela comprend :
I
I
I
Les pointeurs
La surcharge doprateurs
Lhritage multiple
J. Sopena (INRIA/UPMC)
14 / 151
Notes
I
J. Sopena (INRIA/UPMC)
15 / 151
J. Sopena (INRIA/UPMC)
16 / 151
J. Sopena (INRIA/UPMC)
17 / 151
Execution : ./monProg
J. Sopena (INRIA/UPMC)
18 / 151
Portabilit
Le bytecode gnr par le compilateur ne dpend pas de larchitecture de la machine o a t compil le code source, cest--dire
que les bytecodes produits sur une machine pourront sexcuter
(au travers dune machine virtuelle) sur des architectures diffrentes.
J. Sopena (INRIA/UPMC)
19 / 151
Excution du bytecode
J. Sopena (INRIA/UPMC)
20 / 151
svgFigures/LOGO-Apple
J. Sopena (INRIA/UPMC)
21 / 151
J. Sopena (INRIA/UPMC)
22 / 151
Note
Java perd (un peu) en efficacit par rapport C++// mais gagne
(beaucoup) en portabilit.
J. Sopena (INRIA/UPMC)
23 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Conception par traitements.
Conception par objets.
Le concept dencapsulation.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
24 / 151
Problmatique de la programmation
Le schma simplifi dun systme informatique peut se rsumer par
la formule :
Systme informatique = Structures de donnes + Traitements
J. Sopena (INRIA/UPMC)
25 / 151
Problmatique de la programmation
Le schma simplifi dun systme informatique peut se rsumer par
la formule :
Systme informatique = Structures de donnes + Traitements
Le cycle de vie dun systme peut tre dcompos en deux grandes
phases :
I
J. Sopena (INRIA/UPMC)
25 / 151
Problmatique de la programmation
Le schma simplifi dun systme informatique peut se rsumer par
la formule :
Systme informatique = Structures de donnes + Traitements
Le cycle de vie dun systme peut tre dcompos en deux grandes
phases :
I
25 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Conception par traitements.
Conception par objets.
Le concept dencapsulation.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
26 / 151
J. Sopena (INRIA/UPMC)
27 / 151
P ROGRAMME
Structures de donnes
Algorithmes
Variable
Procdure
Variable
Fonction
Variable
Procdure
Variable
Fonction
J. Sopena (INRIA/UPMC)
28 / 151
29 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Conception par traitements.
Conception par objets.
Le concept dencapsulation.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
30 / 151
J. Sopena (INRIA/UPMC)
31 / 151
P ROGRAMME
Objet
Objet
Variable
Variable
Variable
Variable
Procdure
Procdure
Fonction
Fonction
J. Sopena (INRIA/UPMC)
32 / 151
J. Sopena (INRIA/UPMC)
33 / 151
retenir
Ne commencez pas par vous demander ce que fait lapplication
mais ce quelle manipule.
J. Sopena (INRIA/UPMC)
34 / 151
J. Sopena (INRIA/UPMC)
35 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Conception par traitements.
Conception par objets.
Le concept dencapsulation.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
36 / 151
Le concept dencapsulation.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Conception par traitements.
Conception par objets.
Le concept dencapsulation.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
37 / 151
Capsule
ensemble des
services publics
offerts
Demande
de service
Lucky
Luke
123
Rgle
Les donnes dun objet (son tat) peuvent tre lues ou modifies
uniquement par les services proposs par lobjet lui-mme (ses
mthodes)
J. Sopena (INRIA/UPMC)
38 / 151
Encapsulation : dfinition
Dfinition
Le terme encapsulation dsigne le principe consistant cacher
linformation contenue dans un objet et de ne proposer que des
mthodes de modification/accs ces proprits (attributs).
J. Sopena (INRIA/UPMC)
39 / 151
Encapsulation : dfinition
Dfinition
Le terme encapsulation dsigne le principe consistant cacher
linformation contenue dans un objet et de ne proposer que des
mthodes de modification/accs ces proprits (attributs).
I
I
Intrt
Protger la structure interne de lobjet contre toute manipulation
non contrle, produisant une incohrence.
J. Sopena (INRIA/UPMC)
39 / 151
Encapsulation : en pratique
J. Sopena (INRIA/UPMC)
40 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
41 / 151
J. Sopena (INRIA/UPMC)
42 / 151
J. Sopena (INRIA/UPMC)
42 / 151
Dfinition
La classe peut tre vue comme un moule pour la cration des
objets, quon appelle alors des instances de la classe.
J. Sopena (INRIA/UPMC)
42 / 151
Signature et code du
service (mthode)
prnom
nom
mdailles
Nom et type
de lattribut
Instanciation (new)
Lucky
Luke
Joe
Dalton
123
Averell
Dalton
Instances de la classe
J. Sopena (INRIA/UPMC)
43 / 151
J. Sopena (INRIA/UPMC)
44 / 151
J. Sopena (INRIA/UPMC)
44 / 151
44 / 151
Exemple : Un QCM.
J. Sopena (INRIA/UPMC)
45 / 151
rponseCorrecte
?
Aucune hypothse sur la structure interne
J. Sopena (INRIA/UPMC)
46 / 151
Question
+repondre(r: int): void
+reponseCorrecte(): boolean
+toString(): String
J. Sopena (INRIA/UPMC)
47 / 151
Classe : dclaration.
En Java, pour dclarer une classe on utilise le mot-cl class suivi
du nom de la classe.
p u b l i c class P o i n t {
...
}
Rgles
1. La premire lettre du nom dune classe doit toujours tre
une lettre majuscule (ex : Chat).
2. Mlange de minuscule, majuscule avec la premire lettre de
chaque mot en majuscule (ex : ChatGris).
3. Une classe se trouve dans un fichier portant son nom
suivi lextention .java (ex : ChatGris.java)
J. Sopena (INRIA/UPMC)
48 / 151
49 / 151
50 / 151
J. Sopena (INRIA/UPMC)
51 / 151
Question
+Question(q: String, c: String[], b :int)
+repondre(r: int): void
+reponseCorrecte(): boolean
+toString(): String
-question: String
-choix: String[]
-bonneReponse: int
-reponse(): int
J. Sopena (INRIA/UPMC)
52 / 151
J. Sopena (INRIA/UPMC)
53 / 151
54 / 151
J. Sopena (INRIA/UPMC)
55 / 151
J. Sopena (INRIA/UPMC)
56 / 151
Variable de classe
On veut introduire des choix par dfaut
p u b l i c class Q u e s t i o n {
...
private S t r i n g [ ] c h o i x D f a u t = {" v r a i " , " faux " } ;
...
}
J. Sopena (INRIA/UPMC)
57 / 151
Variable de classe
Classe Question
rponseCorrecte
question
choix
rponse
bonneRponse
choixDfaut
"vrai"
"faux"
Instance q1
Instance q2
rponseCorrecte
rponseCorrecte
question
question
"Vous tes"
"Vous avez"
choix
choix
"beau"
"5 ans"
"moche"
"10 ans"
rponse
bonneRponse
rponse
bonneRponse
J. Sopena (INRIA/UPMC)
58 / 151
Laccs aux membres de classe peut aussi se faire avec une instance
de la classe suivie de loprateur . . Mais ceci est peu lisible et
nutiliser que pour le polymorphisme (voir cours suivant).
Q u e s t i o n q1 = new Q u e s t i o n ( ) ;
System . o u t . p r i n t l n ( q1. c h o i x D e f a u t [ 1 ] ) ;
J. Sopena (INRIA/UPMC)
59 / 151
J. Sopena (INRIA/UPMC)
60 / 151
J. Sopena (INRIA/UPMC)
60 / 151
J. Sopena (INRIA/UPMC)
60 / 151
J. Sopena (INRIA/UPMC)
60 / 151
Remarque(s)
Les constructeurs sont des mthodes particulires, ils seront donc
introduits aprs celles-ci dans ce cours. Cependant, vous devez
toujours dclarer les constructeurs aprs les attributs et
avant les autres mthodes (voir ci-dessus).
J. Sopena (INRIA/UPMC)
60 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
61 / 151
J. Sopena (INRIA/UPMC)
62 / 151
Remarque(s)
Nous laissons de ct pour linstant le cas des tableaux sur lesquels
nous reviendrons plus tard.
J. Sopena (INRIA/UPMC)
63 / 151
Exemple
1
345
-2
2L
3.14f, 2.5e+5
0.2d, 1.567e-5
true ou false
a
Attention
Un attribut de type primitif nest pas un objet !
J. Sopena (INRIA/UPMC)
64 / 151
J. Sopena (INRIA/UPMC)
65 / 151
J. Sopena (INRIA/UPMC)
66 / 151
Les constantes
Remarque(s)
On utilise souvent un attribut de classe dclar final pour dfinir
une constante :
final s t a t i c p u b l i c double PI = 3 . 1 4 d ;
J. Sopena (INRIA/UPMC)
67 / 151
p u b l i c class Logement {
// l e s a t t r i b u t s
f i n a l p u b l i c double s u r f a c e ;
p u b l i c double p r i x ;
public S t r i n g p r o p r i e t a i r e ;
p r i v a t e boolean vendu ;
}
J. Sopena (INRIA/UPMC)
68 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Le mot cl this.
Les accesseurs.
Les mthodes de classe.
La surcharge.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
69 / 151
J. Sopena (INRIA/UPMC)
70 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Le mot cl this.
Les accesseurs.
Les mthodes de classe.
La surcharge.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
71 / 151
Le mot cl this.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Le mot cl this.
Les accesseurs.
Les mthodes de classe.
La surcharge.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
72 / 151
Dfinition
Dans le corps dune mthode, le mot cl this dsigne linstance sur
laquelle est invoque la mthode. Ce mot cl est utilis dans 3
circonstances :
1. pour accder aux attributs de lobjets
2. pour comparer la rfrence de lobjet invoquant la mthode
une autre rfrence
3. pour passer la reference de lobjets invoquant la mthode en
paramtre dune autre mthode
J. Sopena (INRIA/UPMC)
73 / 151
J. Sopena (INRIA/UPMC)
74 / 151
J. Sopena (INRIA/UPMC)
75 / 151
J. Sopena (INRIA/UPMC)
76 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Le mot cl this.
Les accesseurs.
Les mthodes de classe.
La surcharge.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
77 / 151
Les accesseurs.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Le mot cl this.
Les accesseurs.
Les mthodes de classe.
La surcharge.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
78 / 151
Respect de lencapsulation
Rgle
Les attributs doivent :
I
J. Sopena (INRIA/UPMC)
79 / 151
p u b l i c class P o i n t {
public i n t x , y ;
}
p u b l i c class F i g u r e {
public Point c ;
p u b l i c void t r a n s l a t e r ( i n t x , i n t y ) {
t h i s . c . x += x ;
t h i s . c . y += y ;
}
}
J. Sopena (INRIA/UPMC)
80 / 151
p u b l i c class P o i n t {
p u b l i c int[] t u p l e ;
}
p u b l i c class F i g u r e {
public Point c ;
p u b l i c void t r a n s l a t e r ( i n t x , i n t y ) {
t h i s . c . x += x ;
t h i s . c . y += y ;
}
}
J. Sopena (INRIA/UPMC)
81 / 151
p u b l i c class P o i n t {
p u b l i c int[] t u p l e ;
}
p u b l i c class F i g u r e {
public Point c ;
p u b l i c void t r a n s l a t e r ( i n t x , i n t y ) {
this.c.x += x;
this.c.y += y;
}
}
J. Sopena (INRIA/UPMC)
82 / 151
J. Sopena (INRIA/UPMC)
83 / 151
p u b l i c class P o i n t {
p r i v a t e int[] t u p l e ;
p u b l i c i n t getX ( ) { . . . }
p u b l i c void s e t X ( i n t x ) { . . . }
p u b l i c i n t getY ( ) { . . . }
p u b l i c void s e t Y ( i n t y ) { . . . }
}
p u b l i c class F i g u r e {
public Point c ;
p u b l i c void t r a n s l a t e r ( i n t x , i n t y ) {
t h i s . c . s e t X ( t h i s . c . getX ()+ x ) ;
t h i s . c . s e t Y ( t h i s . c . getY ()+ y ) ;
}
}
J. Sopena (INRIA/UPMC)
84 / 151
Rappel
J. Sopena (INRIA/UPMC)
85 / 151
J. Sopena (INRIA/UPMC)
86 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Le mot cl this.
Les accesseurs.
Les mthodes de classe.
La surcharge.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
87 / 151
J. Sopena (INRIA/UPMC)
88 / 151
J. Sopena (INRIA/UPMC)
89 / 151
Attention
Ici, on ne peut pas utiliser le mot cl this pour accder lattribut
de classe ageRetraitre.
J. Sopena (INRIA/UPMC)
90 / 151
J. Sopena (INRIA/UPMC)
91 / 151
92 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Le mot cl this.
Les accesseurs.
Les mthodes de classe.
La surcharge.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
93 / 151
La surcharge.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Le mot cl this.
Les accesseurs.
Les mthodes de classe.
La surcharge.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
94 / 151
son nom
ATTENTION
En java, ne font pas partie de la signature dune mthode :
1. le nom de ses arguments (comme en C)
2. son type de retour de la mthode (void ou non)
J. Sopena (INRIA/UPMC)
95 / 151
96 / 151
p u b l i c class R e c t a n g l e {
p u b l i c void r e d i m e n s i o n n e r ( int f a c t e u r ) { . . . }
p u b l i c void r e d i m e n s i o n n e r ( float a , float b ) { . . . }
}
p u l i c class T e s t R e c t a n g l e {
p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) {
Rectangle r1 ;
...
r1 . redimensionner ( 2 ) ;
r 1 . r e d i m e n s i o n n e r ( 2 , 3.1 ) ;
}
}
J. Sopena (INRIA/UPMC)
97 / 151
ATTENTION
Il ne faut pas confondre la surcharge ( en anglais overloading ) et la redfinition (en anglais overriding ) qui sera
tudie dans le cours sur le polymorphisme et qui correspond la
possibilit de spcifier le comportement dune mthode lexcution selon le type dobjets linvoquant.
J. Sopena (INRIA/UPMC)
98 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Le mcanisme dinstanciation.
Constructeur par dfaut.
Plusieurs constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
99 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Le mcanisme dinstanciation.
Constructeur par dfaut.
Plusieurs constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
100 / 151
Le mcanisme dinstanciation.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Le mcanisme dinstanciation.
Constructeur par dfaut.
Plusieurs constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
101 / 151
Instanciation de classe.
Les instances dune classe sont cres (construits) par une mthode
particulire de la classe appele constructeur.
J. Sopena (INRIA/UPMC)
102 / 151
J. Sopena (INRIA/UPMC)
103 / 151
J. Sopena (INRIA/UPMC)
104 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Le mcanisme dinstanciation.
Constructeur par dfaut.
Plusieurs constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
105 / 151
J. Sopena (INRIA/UPMC)
106 / 151
Dfinition
En abscence de dclaration explicite dun constructeur, un
constructeur par dfaut sera automatiquement ajout par le
compilateur Java.
Pour classe Toto, ce constructeur par dfaut sera :
[ p u b l i c ] Toto ( ) {}
J. Sopena (INRIA/UPMC)
107 / 151
Remarque(s)
La notion de constructeur par dfaut est en partie li lhritage ;
elle sera donc complte plus tard lorsque nous introduirons cette
notion.
Dans un premier temps, on retiendra quun constructeur par
dfaut :
1. initialise les attributs numrique de types primitif 0 ;
2. initialise les attributs de (boolean) false ;
3. initialise les attributs de types Objet null.
J. Sopena (INRIA/UPMC)
108 / 151
J. Sopena (INRIA/UPMC)
109 / 151
Attention
Le constructeur par dfaut nest ajout par Java si et seulement
sil ny a pas de constructeur explicite.
Une classe ne possde donc pas toujours un construceur sans
paramtre.
Si lon en veut un en plus dun constructeur paramtre, il faut
le dclarer explicitement.
J. Sopena (INRIA/UPMC)
110 / 151
p u b l i c class P o i n t {
private int x ;
private int y ;
p u b l i c Point ( i n t x , i n t y ) {
this . x = x ;
this . y = y ;
}
}
p u b l i c class T e s t P o i n t ( ) {
p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) {
Point p = new Point() ;
}
}
J. Sopena (INRIA/UPMC)
111 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Le mcanisme dinstanciation.
Constructeur par dfaut.
Plusieurs constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
112 / 151
Plusieurs constructeurs.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Le mcanisme dinstanciation.
Constructeur par dfaut.
Plusieurs constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC)
113 / 151
Surcharge de constructeur.
J. Sopena (INRIA/UPMC)
114 / 151
Exemple de constructeurs.
p u b l i c class Q u e s t i o n {
...
p u b l i c Question ( S t r i n g q u e s t i o n , S t r i n g [ ] c h o i x ,
i n t bonneReponse ) {
this . question = question ;
this . choix = choix ;
t h i s . bonneReponse = bonneReponse ;
this . reponse = 0;
}
p u b l i c Question ( S t r i n g q u e s t i o n , S t r i n g [ ] c h o i x ) {
this . question = question ;
this . choix = choix ;
t h i s . bonneReponse = 0 ;
this . reponse = 0;
}
...
}
J. Sopena (INRIA/UPMC)
115 / 151
J. Sopena (INRIA/UPMC)
116 / 151
Exemple dinstanciation
p u b l i c class A p p l i Q u e s t i o n {
p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) {
S t r i n g [ ] rep = { " Blanc " , " Noir " };
Question q =
new Question ( " Le c h e v a l b l a n c e s t " , r e p , 1 ) ;
System . o u t . p r i n t l n ( q . t o S t r i n g ( ) ) ;
...
}
J. Sopena (INRIA/UPMC)
117 / 151
Classe : dfinition.
Dfinir une classe en Java, cest dfinir ses membres savoir :
(1) ses attributs, (2) le(s) constructeur(s), (3) et ses mthodes.
I
I
I
Consquences
I
J. Sopena (INRIA/UPMC)
118 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Coder un executable.
Compilation.
Structuration des sources.
Des classes utiles.
J. Sopena (INRIA/UPMC)
119 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Coder un executable.
Compilation.
Structuration des sources.
Des classes utiles.
J. Sopena (INRIA/UPMC)
120 / 151
Coder un executable.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Coder un executable.
Compilation.
Structuration des sources.
Des classes utiles.
J. Sopena (INRIA/UPMC)
121 / 151
Attention
La mthode main ne peut pas retourner dentier comme en C.
public s t a t i c
J. Sopena (INRIA/UPMC)
int
main ( S t r i n g [ ] a r g s )
122 / 151
p u b l i c class H e l l o {
p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) {
System . o u t . p r i n t l n ( " H e l l o w o r l d ! ! ! " ) ;
}
}
J. Sopena (INRIA/UPMC)
123 / 151
J. Sopena (INRIA/UPMC)
124 / 151
124 / 151
125 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Coder un executable.
Compilation.
Structuration des sources.
Des classes utiles.
J. Sopena (INRIA/UPMC)
126 / 151
Compilation.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Coder un executable.
Compilation.
Structuration des sources.
Des classes utiles.
J. Sopena (INRIA/UPMC)
127 / 151
Important
Un fichier ne peut contenir quune seule classe publique.
J. Sopena (INRIA/UPMC)
128 / 151
HelloWorld.java
public class HelloWorld {
public static void main (String args[]) {
System.out.println("Hello World!");
}
}
javac HelloWorld.java
HelloWorld.class
0
3
5
8
J. Sopena (INRIA/UPMC)
129 / 151
HelloWorld.class
0
3
5
8
java HelloWorld
JIT
J. Sopena (INRIA/UPMC)
Excution
Systme
dexploitation
130 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Coder un executable.
Compilation.
Structuration des sources.
Des classes utiles.
J. Sopena (INRIA/UPMC)
131 / 151
J. Sopena (INRIA/UPMC)
132 / 151
Important
J. Sopena (INRIA/UPMC)
133 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
La classe String
Les tableaux.
Les enveloppes.
J. Sopena (INRIA/UPMC)
134 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
La classe String
Les tableaux.
Les enveloppes.
J. Sopena (INRIA/UPMC)
135 / 151
La classe String
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
La classe String
Les tableaux.
Les enveloppes.
J. Sopena (INRIA/UPMC)
136 / 151
Attention
Pour comparer deux chanes de caractres, on utilise la mthode
equals (ou equalsIgnoreCase) de la classe String.
String str1 = . . . . ;
String str2 = . . . . ;
i f ( s t r 1 . e q u a l s ( s t r 2 ) ) { . . . } else { . . . }
J. Sopena (INRIA/UPMC)
137 / 151
etc ...
J. Sopena (INRIA/UPMC)
138 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
La classe String
Les tableaux.
Les enveloppes.
J. Sopena (INRIA/UPMC)
139 / 151
Les tableaux.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
La classe String
Les tableaux.
Les enveloppes.
J. Sopena (INRIA/UPMC)
140 / 151
Les tableaux
Important
Un tableau est un objet !
Deux tapes :
1. Dclaration : dterminer le type de ses lments.
2. Dimensionnement : dterminer la taille du tableau (cest--dire
le nombre dlments).
J. Sopena (INRIA/UPMC)
141 / 151
J. Sopena (INRIA/UPMC)
142 / 151
Remarque(s)
On peut aussi donner explicitement la liste des lments :dun
tableau au moment de son instanciation :
int [ ] tableau = {1 ,2 ,3};
S t r i n g [ ] mots = [ " L i c e n c e " , "MIAGE" , "POO" } ;
J. Sopena (INRIA/UPMC)
143 / 151
ville ;
J. Sopena (INRIA/UPMC)
144 / 151
J. Sopena (INRIA/UPMC)
145 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
La classe String
Les tableaux.
Les enveloppes.
J. Sopena (INRIA/UPMC)
146 / 151
Les enveloppes.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
La classe String
Les tableaux.
Les enveloppes.
J. Sopena (INRIA/UPMC)
147 / 151
chaque type primitif est associ une classe quon appelle classe
enveloppe de ce type primitif.
La classe enveloppe du type int est la classe Integer.
I n t e g e r e n t i e r = new I n t e g e r ( 5 6 ) ;
J. Sopena (INRIA/UPMC)
148 / 151
J. Sopena (INRIA/UPMC)
classe enveloppe
Short
Integer
Long
Byte
Float
Double
Boolean
Character
149 / 151
J. Sopena (INRIA/UPMC)
150 / 151
J. Sopena (INRIA/UPMC)
151 / 151