View
216
Download
0
Category
Preview:
Citation preview
8/15/2019 Support de Cour Java
1/213
!"#$%%&&&'()(*+',-%./0(1
3045*6-5 789: ; ?>=@(+A>
8/15/2019 Support de Cour Java
2/213
7
B6C51D,)
E F1-(-5 =A #-0G-+**5 HIJI
E KD/()5- /5) 10A15#>) 06C5>) +451 HIJI
E
L0A1540(- @5) MNO
E +Q5 L%LRR
E L0A15#>) 06C5>)
S-?T-5U=()
8/15/2019 Support de Cour Java
3/213
V
L+@-5
E W5 H+4+ 4= #+- =A(U=5*5A>
E
S-?#+-5- /5) #-5*(X-5) 15-DY1+D0A)E ZQ15#D0A $ =D/()5- /[Z\M Z1/(#)5
E S-?)5A15
E ZQ+*5A YA+/
F4+/=+D0A
8/15/2019 Support de Cour Java
4/213
35>]5+A) !" Z1/(#)5
E 0=C0=-) /5)@5-A(X-5) >51!A0)H+4+
E
L0A15#D0A @5 ^KMA+D45 _*+D))5`
E M]O
E a?#=>+D0A #/=) #-0 b
E
S/=G(A $ @?/+( bMA10*#+D6(/(>? b
E
S/=G(A $c(A@0&]=(/@5-
:
35 #+) =D/()5- >0=> @5 )=(>5d
8/15/2019 Support de Cour Java
5/213
e
S/+A
9' S-5*(5- #-0G-+**5 f
7' 30D0A) @5 6+)5 g )PA>+Q5 7V
V'
L0A15#>) 06C5>) 5A H+4+ :::' W5) 5Q15#D0A) h:
e' MNO $ Ici g ) 9kV
8/15/2019 Support de Cour Java
6/213
j
MA>-0@=1D0A
E
W+AG+G5E O+1!(A5 4(->=5//5
E S/+>5,0-*5
E o/5 b
E
H+4+)1-(#> _ZLOI` b
8/15/2019 Support de Cour Java
7/213k
O0D4+D0A)
E W+AG+G5 1-?? 5A 9hhe! S+>-(1p 3+=G!>0A
!
H+*5) ^0)/(AG
E
8/15/2019 Support de Cour Java
8/213
7' S-5*(5- #-0G-+**5
8/15/2019 Support de Cour Java
9/213h
S-5*(5- #-0G-+**5
/** ma première classe */ public class Exemple{
} l(1!(5- )0=-15 _>5Q>5` #$%&'(%)*+!+
public static void main(String[] argv){
// afficher un messagejava.lang.System .out.println(”Bonjour”);
}System .out.println(”;-)”);
8/15/2019 Support de Cour Java
10/21398
S0=- 40(- /5 -?)=/>+>d
9' L0*#(/5- /5 #-0G-+**5
javac Exemple.java
java Exemple
'5Q5 b '1/+)) b
7' W+A15- /5 #-0G-+**5
8/15/2019 Support de Cour Java
11/21399
l(1!(5- )0=-15
E ZQ>5A)(0A $ 'C+4+
E 30* @= Y1!(5- r A0* @5 /+ 1/+))5 #=6/(U=5
E
a5)#51>5- /+ 1+))5 ZQ5*#/5
E 9 1/+))5 #=6/(U=5 #+- Y1!(5-
E
S+) @5 #0(A> 4(-G=/5 5A YA @5 1/+))5 sE O?/+AG5 @?1/+-+D0A R (*#/?*5A>+D0A
R 10**5A>+(-5)
8/15/2019 Support de Cour Java
12/21397
L0*#(/+D0A
E l(1!(5- 10*#(/? $ '1/+))
E S)5=@0T10@5 _6P>5T10@5`
E
t L0@5 *+1!(A5
javac Exemple.java
L5->+(A) 10*#(/+>5=-) >-+A),0-*5A> /5 10@5 C+4+5A 10@5 A+D, $
• S0->+6(/(>? A=//5• ^5)D0A @5 /+ *?*0(-5 b
8/15/2019 Support de Cour Java
13/2139V
ZQ?1=D0A
java Exemple
E
S)5=@0T10@5 !"#$%&%'#' #+- /+ HJO -+!+ ./012+( 3+45/6%
E
40(-5 10*#(/? 5A A+D, u /+ 40/?5 _HJO !0>)#0>`
E S-0G-+**5 )5=/ 5*6+-U=? @+A)_"1+67+(86%` =A5 #+G5 NiOW _+ ''(%19
!
\(v?-5A15) $ )0An )?1=-(>? _G5)D0AA+(-5`E S-015))5=- HIJI _ L+-@)`
E X*5) :6708/7
E
S0->+6(/(>? >0>+/5 )( 60AA5 HJO
8/15/2019 Support de Cour Java
14/2139:
ZQ5-1(15
E i5)>5- /5 #-0G-+**5 #$%&'(%
E L0A)=/>5- /+ @01=*5A>+D0A
!
^00G/5 $ C+4+ @01=*5A>+D0A +#( k 0= f
! !"#$%%@01)'0-+1/5'10*%C+4+)5%k%@01)%+#(%
! !"#$%%@01)'0-+1/5'10*%C+4+)5%f%@01)%+#(%
E
L0A)=/>5- /5) >=>0-(+=Q 0q1(5/)E
!"#$%%@01)'0-+1/5'10*%C+4+)5%>=>0-(+/%
8/15/2019 Support de Cour Java
15/2139e
\01=*5A>+D0A
8/15/2019 Support de Cour Java
16/213
S/+>5,0-*5
9j
S+U=5>+G5 % '+4;+? 65)0(A ,0A1D0AA5/
E
wLRRx 5)#+15 @5 A0**+G5
E #+- @?,+=> _C+4+'/+AG`
E
+A@+-@ _G5)D0A Z%
8/15/2019 Support de Cour Java
17/2139k
S+U=5>+G5 % '+4;+ /5 >P#5 $! java.lang (sys), java.awt (std)! javax.swing (std), javax.xml (std)!
org.w3c.dom (tiers/std)! loic.classeperso (perso)
E
10**5 /5) -?#5->0(-5)
!
8/15/2019 Support de Cour Java
18/2139f
L/+=)5 (*#0->
E
5 @y=A5 1/+))5 @y=A #+1p+G5U=( Ay5)> #+) 1!+-G? #+- @?,+=>
E
l+1(/(>? $ 1/+=)5 (*#0->
E
ZA=*?-+D0A! z /y=A(>?! S+- #+1p+G5 _{` A0A -?1=-)(, |T_
import javax.swing.SwingUtilities;import javax.swing.*;
javax.swing.SwingUtilities;
import javax.swing.event.*;
8/15/2019 Support de Cour Java
19/213
E 9'8 _9'9` ; +''(%1 n CA(n +&> w9hhex! 7Vj 1/+))5) #0=- 9'8'7
E 9'7 ; "=/6
8/15/2019 Support de Cour Java
20/213
I=C0=-@y!=( b
E
H+4+ k =#@+>5 k9%k7! B#5A H\}
! +Q5
!
l-+*5&0-p @5 #+-+//?/()+D0AE
H+4+ f =#@+>5 7e
! -5+*)
! W+*6@+)
!
L0@5 @+A) /5) (A>5-,+15)
E
H+4+ h b 789j b
! O0@=/+-(>?
78
5>=@H+4+ k =k9
65-•5>H+4+ f =78
8/15/2019 Support de Cour Java
21/213
79
S/+>5,0-*5
S/=) G-0))5 @(q1=/>? @= C+4+10AA+€>-5 15) 1/+))5) )>+A@+-@)1/+))5) 7%'0%4+1%7
\01=*5A>+D0A 6(5A ,+(>5 $ C+4+@01 g >=>0-(5/)
java –showversionjavac -version// version > 1.3,// options : –source et -target
8/15/2019 Support de Cour Java
22/213
77
\()>-(6=D0A b
E K)+G5!
ZQ?1=D0A )5=/5 _HaZ`
!
\?45/0##5*5A> _H\} 7n
8/15/2019 Support de Cour Java
23/213
V' 30D0A) @5 6+)5
+Q5
8/15/2019 Support de Cour Java
24/213
public class Exemple{
}
ƒ I110/+@5) „
E L/+))5
E O?>!0@5
E ]/01 $ 5A)5*6/5 )?U=5AD5/ @y(A)>-=1D0A) 7:
public static void main(String[] argv){
// afficher un commentaire monoligne/* commentairesur plusieurs lignes */
/** commentaire javadoc */}
8/15/2019 Support de Cour Java
25/213
7e
I"-(6=> % J+-(+6/5 b
E B6C5>! S-?@?YA( 0= =D/()+>5=-
!
L!+€A5 @5 1+-+1>X-5) $ -(AG …Z))+(…! O+A(#=/+D0A #+- † -?,?-5A15) ‡ _#0(A>5=-) b`
E X-5 yIy
! #0=- /[5q1+1(>?
! @0=6/? #+- =A >P#5 06C5>
8/15/2019 Support de Cour Java
26/213
7j
iP#5) @5 @0AA?5) )1+/+(-5) _9`
• char
! >P#5 1+-+1>X-5
!
t -(AG! =A(10@5 [ˆ=8888[
• boolean
! true 0= false'
!
A0A !0*0*0-#!5 +=Q5AD5-)
E >P#5) 5AD5-)! byte _f 6(>)`
!
short _9j 6(>)`! int _V7 6(>)`
! long _j: 6(>)`
E >P#5) -?5/)
!
float _V7 6(>)`
! double _j: 6(>)`
8/15/2019 Support de Cour Java
27/213
7k
iP#5) @5 @0AA?5) )1+/+(-5) _7`
E 30-*+/()?) _#0->+6(/(>?`
E \0=6/?) #+- @5) >P#5) 06C5>) $
!
Double
! Integer
E O?>!0@5)•
toString()
•
Double.parseDouble()
8/15/2019 Support de Cour Java
28/213
7f
\?1/+-+D0A @5 4+-(+6/5)
E 3[(*#0->5 0‰ @+A) /5 6/01
E MA(D+/()+D0A @[=A5 4+-(+6/5 #+) +=>0*+DU=5
! Z--5=- $ …*(G!> A0> 65 (A(D+/(•5@…
public static void main(String[] argv) {int i = 0;char c = 'A';Classe objet;
String s;double d = 1.0;float f = 1.3f;double[] tableau;
}
8/15/2019 Support de Cour Java
29/213
7h
{int i = 0 ;{
int j= 3 ;// i est utilisable dans ce bloc
}// j n’est plus disponible ici
}
{int i = 0 ;
boolean b = true;{
double i= 3 ; boolean b = false;
}
}
8/15/2019 Support de Cour Java
30/213
V8
O+A(#=/+D0A @5 4+-(+6/5)
public static void main(String[] a) {int i = 0;i = i + 1;i += 1 ;i *= 2 ;
System.out.println(i) ;System.out.println(++i) ;System.out.println(i) ;
System.out.println(i++) ;System.out.println(i) ;
i = (int) 10.6;}
8/15/2019 Support de Cour Java
31/213
V9
L0A@(D0A _9`
if (test) {…
}
if (test) {…
} else {
…}
(i==5)(i!=5)
KA >5)> 5)> =A 600/?5A $#%3$ 0= 4.5)$(test)?VRAI :FAUX
boolean b1 =(i==5);
boolean b2 = !b1;
B#?-+>5=- >5-A+(-5
i5)>
8/15/2019 Support de Cour Java
32/213
V7
L0A@(D0A _7`
if (test) instruction1; else instruction2;
if (b1) …if (!b1)… Opérateur NON
if (b1 || b2) … Opérateur OU
if (b1 && b2) … Opérateur ET ALORS
KA5 )?U=5A15 @5 >5)> Ay5)> #+) 10*#/X>5*5A> ?4+/=?5)( 15 Ay5)> #+) A?15))+(-5'
8/15/2019 Support de Cour Java
33/213
VV
L0A@(D0A _V`
switch (variable) {case valeur1 :
instructions;
break;case valeur2 :case valeur3 :
instructions;
break;default:
instructions;
[ break;]}
E
J+-(+6/5 @5 >P#5 )(*#/5
_-#%!"6 #0))(6/5 @+A) 9'k`E
B=6/( @= 6-5+p b_ t LŠ`
E /$4.35# ,+1=/>+D,
8/15/2019 Support de Cour Java
34/213
V:
]0=1/5) 10A@(D0AA5//5)
for (initialisation;test;incrémentation) {…
}
while (test) {…
}
do {…
} while (test);
I110/+@5) ,+1=/>+D45))[(/ AyP + U=[=A5 (A)>-=1D0A
for (int i=0;i
8/15/2019 Support de Cour Java
35/213
8/15/2019 Support de Cour Java
36/213
Vj
i+6/5+=Q _9`
E
i+(//5 YQ5n @0AA?5 #+- /5 1!+*# length E S-5*(5- (A@(15 @= >+6/5+= $ 8
E J?-(Y1+D0A @5 /+ 4+/(@(>? @5) (A@(15)
!
ZQ15#D0A $ OutOfBoundsArray
// création d'un tableau vide de 10 entiersint[] t1 = new int[10];// déclaration d'un tableau sans élémentint[] t2;
for(int i=0; i
8/15/2019 Support de Cour Java
37/213
Vk
i+6/5+=Q _7`
E MA(D+/()+D0A @= >+6/5+=
! S+- @5) 4+/5=-) )1+/+(-5)
!
S+- @5) -?,?-5A15) A=//5)E …W(6?-5-… =A >+6/5+=
E
i+6/5+= *=/D@(*5A)(0AA5/
t1 = null;
String[][] chaines = new String[10][5];
t1[i] = ?;
8/15/2019 Support de Cour Java
38/213
Vf
L!+€A5 @5 1+-+1>X-5) _9`
• String ! char[]
E )#.783$ String
E
/9".:!83$ StringBufferStringBuilder
E
KilT9j
E
](6/(0>!XU=5 ,0=-A(5! L0*#+-+()0A @5 1!+€A5) $ 5U=+/)_ `n 10*#+-5i0_ `! a51!5-1!5 $ (A@5QB,_ `! ZQ>-+1D0A $ )=6)>-(AG_ `n -(AGi0p5A(•5-n )#/(>n -5G5Q#!
i-+A),0-*+D0A +()?5 @5 >P#5 )1+/+(-5 45-) >10/6
8/15/2019 Support de Cour Java
39/213
Vh
L!+€A5 @5 1+-+1>X-5) _7`
String s1 = "hello";
String s2 = new String("hello");String s3 = null;
E L-?+D0A @5 1!+€A5_)`
E ‹=5 )5 #+))5T>[(/ b
String s3 = s1 + " " + s1;
8/15/2019 Support de Cour Java
40/213
:8
String s1 = "loic" ;String s2 = "loic";String s3 = new String("loic");
String s4 = new String("loic");String s5 = s3;String s6 = null;
System.out.println(s1==s2);System.out.println(s1==s3);System.out.println(s3==s4);System.out.println(s5==s3);
System.out.println(s1.equals(s3));System.out.println(s1.equals(s6));System.out.println(s6.equals(s1));
8/15/2019 Support de Cour Java
41/213
O+A(#=/+D0A @5 1!+€A5)
:9
// Un peu vieux, utiliser plutôt split OU// java.util.regexStringTokenizer st =new StringTokenizer("Quelle boucherie !");
while (st.hasMoreTokens())System.out.println(st.nextToken());
String[] result =
"et ça découpe toujours".split("\\s");
for (int i=0; i
8/15/2019 Support de Cour Java
42/213
:7
† l0A1D0A ‡ main
E
B6/(G+>0(-5 5A *0@5 "1+67+(86%
E
S0(A> @y5A>-?5 =A(U=5 @= #-0G-+**5
•
argv $
!
>+6/5+= @5 1!+€A5) @5 1+-+1>X-5)
! S+-+*X>-5) @5 /+ /(GA5 @5 10**+A@5
public static void main(String[] argv);
java Exemple param1 "param 2" param3
8/15/2019 Support de Cour Java
43/213
:V
W(GA5 @5 10**+A@5
E Iq1!5- /5) #+-+*X>-5) @5 /+ /(GA5 @5 10**+A@5! -(AGw x >+6 $ >+6/5+= @5 1!+€A5) @5 1+-+1>X-5)
!
>+6'/5AG>! $ /0AG=5=- @= >+6/5+=
8/15/2019 Support de Cour Java
44/213
:' L0A15#>) 06C5>)
8/15/2019 Support de Cour Java
45/213
\?1/+-+D0A @[=A5 1/+))5
E O0=/5 % O0@X/5 % l+6-(U=5 u 06C5>)
E L+-+1>?-()DU=5) % I"-(6=>)
E
O5))+G5) % O?>!0@5)E 30* =A(U=5 _#+1p+G5`
E \5 1/+))5 %@y(A)>+A15
E
J()(6(/(>? 5> 5A1+#)=/+D0A
E a5/+D0A)
:e
8/15/2019 Support de Cour Java
46/213
public class Etudiant {
}
:j
I"-(6=>) private String nom;int id;
public String getNom() {return nom;
}O?>!0@5
static private int compteur; I"-(6=> @5 1/+))5
O?>!0@5 @5 1/+))5
;?@A B?CDEF1 G HII J
JM5
L0A45AD0A $L/+))5 r >P#530* +451 *+C=)1=/5
static public int getCompteur() {
return compteur;}
8/15/2019 Support de Cour Java
47/213
:k
O0@(Y1+>5=-) @5 *?>!0@5
public static final int methode(double d);
O?>!0@5 #=6/(U=5n 4()(6/5%+##5/+6/5 #+- >0=> /5 *0A@5
O?>!0@5 @5 1/+))5
O?>!0@5 A0A -5@?YA())+6/5
iP#5 @5 -5>0=-
S+-+*X>-5_)`
S+) @5 4+/5=- #+- @?,+=> #0=- /5) +-G=*5A>) wLRRx
8/15/2019 Support de Cour Java
48/213
:f
L0A)>-=1>5=-
E
MA(D+/()5- /5) +"-(6=>) @[=A A0=45/ /[06C5>
E +Q5 @(v?-5A>5 @y=A5 *?>!0@5
! S0->5 /5 *Œ*5 A0* U=5 /+ 1/+))5
!
S+) @5 >P#5 @5 -5>0=-E L0A)>-=1>5=- )+A) +-G=*5A>
! ,0=-A( +=>0*+DU=5*5A> )( #+) @[+=>-5) 10A)>-=1>5=-)
E
-=1>5=-! I##5/ @5 10A)>-=1>5=-) t +451 #+-+*X>-5)
"
SI< @[!?-(>+G5 @5 10A)>-=1>5=-
" SI< @5 10A)>-=1>5=- @5 10#(5 _clone()`
bli l C {
8/15/2019 Support de Cour Java
49/213
public class Cours {
}:h
L0A)>-=1>5=-)
I"-(6=>)int nbEtudiants; boolean passionnant;
public Cours() {nbEtudiants = 0;
} public Cours(int n) {
nbEtudiants = n;}
public void setNbEtudiants(int n) {nbEtudiants = n;
} public int getNbEtudiants() {return nbEtudiants;
} public boolean isPassionnant()
{ return passionnant; }
I115))5=-%O=>+>5=-^5"5-%)5"5-%*=>+>0-
I -?#?>5-S+) @5 &3K5!LM wLRRx
this(0);
setNbEtudiants(n);
8/15/2019 Support de Cour Java
50/213
e8
L-?5- =A 06C5>
E \5*+A@5- /+ *?*0(-5 u /+ HJO! B#?-+>5=- new
E
I##5/5- /5 10A)>-=1>5=-
E
O+A(#=/+D0A @5 #0(A>5=-) -?,?-5A15) bE
J+/5=- )#?1(+/5 "355
! )( 1-?+D0A (*#0))(6/5
! 0= #+) 5A10-5 +v51>?5
Classe instance = new Classe(paramètres);
(instance == null)
Cours unCours = new Cours(24);
8/15/2019 Support de Cour Java
51/213
e9
KD/()5- =A 06C5>
E I11?@5- u =A *5*6-5 r
E B#?-+>5=- #0(A> u /[5Q>?-(5=- @5 /+ 1/+))5
E a?,?-5A15 4+/(@5 b!
Null Pointer exceptionE O5*6-5 4()(6/5
! 3(45+=Q @[+11X) _#=6/(1%#-(4?%#+1p+G5`
! MA>5-,+15 @5 1/+))5
!
ZA1+#)=/+D0A
instance.methode();instance.attribut;
unCours.isPassionnant()
bli l C {
8/15/2019 Support de Cour Java
52/213
public class Cours {// reste de la classe
}e7
public static void main(String[] argv) {Cours c1 = new Cours();
Cours c2 = new Cours(12);
S.o.println("Classe #"+c2.getNbEtudiants());
S.o.println(c2);
S.o.println(c2.toString());if (!c1.isPassionnant())
S.o.println("bof");}
8/15/2019 Support de Cour Java
53/213
eV
ZQ5-1(15 $
^?-5- =A #+-1 @5 4?!(1=/5)E F1-(-5 =A5 +##/(1+D0A #5-*5"+A> @5 G?-5- =A
#+-1 @5 4?!(1=/5) @[=A5 )01(?>? #0))?@+A>!
@5) 40(>=-5)! @5) 1+*(0A)
9' L-?5- @5) 1/+))5) )(*#/5) )+A) -5/+D0A7' MA)>+A1(5- @5) 1/+))5)V'
F>=@(5- /[!?-(>+G5 5> /5 #0/P*0-#!()*5:'
F>=@(5- /5) +=>-5) -5/+D0A)
8/15/2019 Support de Cour Java
54/213
9 T L-?5- /5) 1/+))5)
E B‰ *5"-5 /5 &+/6@9 b
E ‹=5//5) 1/+))5) 10*#(/5- b
E
‹=5//5 1/+))5 5Q?1=>5- b e:
J0(>=-5T (**+> $ L!+€A5T
10=/5=- $ 5AD5-T
#/+15) $ 5AD5-
R +q1!5-_`R +4+A15-_`
L+*(0A
T (**+> $ L!+€A5T
1+#+1(>? $ -?5/
R +q1!5-_`R +4+A15-_`
E
S+) @5 -5/+D0A 5A>-5/5) 1/+))5)
E a?#+-DD0A b
9'
*Œ*5 Y1!(5-7'
Y1!(5-) @(v?-5A>)_*Œ*5 #+1p+G5 s`
V'
l(1!(5-) @(v?-5A>)
_#+1p+G5) @(v?-5A>)`
public class Gestion1 {
8/15/2019 Support de Cour Java
55/213
ee
public class Gestion1 {// classe pour le programme
public static void main(String[] a) {
}}
class Voiture {String immat;
Voiture() {}void avancer() {}
}
class Camion {int capacite;Camion() {}void avancer() {}
}
9 Y1!(5- $ ^5)D0A9'C+4+V 1/+))5) "*" !:K%!83'$)
ZA G?A?-+/n 0A *5> 3"$L5.))$ &.% NLO!$% )+=, )(/5) #-0G-+**5) )0A>)(*#/())(*5)'
8/15/2019 Support de Cour Java
56/213
import vehicule.Camion;
8/15/2019 Support de Cour Java
57/213
public class Gestion3 {// classe pour le programme
public static void main(String[] a) {vehicule. Voiture v;
}
}
package vehicule;
public class Voiture {
String immat; Voiture() {}void avancer() {}
}
ek
'% ^5)D0AV'C+4+45!(1=/5%J0(>=-5'C+4+45!(1=/5%L+*(0A'C+4+
L0*#(/5- ^5)D0AV r
@?#5A@+A15)
ZQ?1=>5- ^5)D0AV
p
Camion c;
8/15/2019 Support de Cour Java
58/213
\+A) @5) -?#5->0(-5) @(v?-5A>)d
E J()(6(/(>? @[=A5 1/+))5 += A(45+= #+1p+G5! 9 #+1p+G5 9 -?#5->0(-5
E
#+) @+A) /5 -?#5->0(-5 10=-+A>
E
l(1!(5-) C+-
ef
java –jar fichier.jar
javac –cp chemin Classe.javajavac paquetage.Classe.javajava -cp chemin Classe
8/15/2019 Support de Cour Java
59/213
eh
7 T L[5)> #+) @?Cu ,+(> b
J0(>=-5T(**+> $ L!+€A5T
10=/5=- $ 5AD5-T #/+15) $ 5AD5-
R +q1!5-_`R +4+A15-_`
L+*(0AT(**+> $ L!+€A5T
1+#+1(>? $ -?5/
R +q1!5-_`
R +4+A15-_`
Iq1!5- )=- /+ 10A)0/5 $• H5 )=() =A5 J0(>=-5%L+*(0A 5> /[(**+>-(1=/+D0A• H[+4+A15
• MA)>+A1(5- @5) 06C5>) @(v?-5A>)
// constructeur proposé par défaut
8/15/2019 Support de Cour Java
60/213
// constructeur proposé par défaut public Voiture() { immat = null;}
public Voiture(String im) {immat = im;
}
j8
public Voiture() {immat = "0000 AA 00";// ou this("0000 AA 00");
}
Voiture v = new Voiture();
Voiture v = new Voiture("300 ISI 63");
public String getImmat() {…}
public void setImmat(String im) {…}
8/15/2019 Support de Cour Java
61/213
j9
\?>-=(-5 =A5 (A)>+A15
E S+) @5 @5)>-=1D0A *+A=5//5E \5)>-=1D0A +=>0*+DU=5 #+- /+ HJO
! a+*+))5T*(5"5) _A+0B+ @5*+A@5- =A A5"0P+G5n 5AYA dE S/=) @5 ,=(>5) @5 *?*0(-5 b
! i+6/5) @5 !+1!+G5 10*#/5Q5! ]0=1/5 (AYA(5!
I(@5- /+ HJO 5A *5"+A> u A=//E O?>!0@5 YA+/(•5_ `
! a5))5*6/5 += @5)>-=1>5=- LRR! S5=> A5 #+) Œ>-5 +##5/?5 _)( ?`
8/15/2019 Support de Cour Java
62/213
ZA1+#)=/+D0A
j7
// classe A avec encapsulation brisée
class A { public int valeur ; public A(int i) { valeur = i;}
}
// classe A avec encapsulationclass AE { private int valeur ; public AE(int i) { setValeur(i);}final public int getValeur() { return valeur; }final public void setValeur(int v){ valeur = v; }
}
A a = new A(2);a.valeur = 5;
AE ae = new AE(0);ae.setValeur(3);
ae.valeur = 5;
1/ Contrôle d’accès
2/ Changer l’implémentation
sans impact sur l’extérieur
7
7
public class B {
8/15/2019 Support de Cour Java
63/213
jV
p {static void methode1(A a) {
a = new A(2);}
static void methode2(A c) {c.valeur = 3;
}
static A methode3(A b) { b = new A(4);return b;
}
public static void main(String[] param) {
A a = new A(1); methode1(a); methode2(a);a = methode3(a);
}
} Iq1!5- .P(.5$3% 5> .' ‹=5 )5 #+))5T>[(/ b
\(G-5))(0A
A@adresse
8/15/2019 Support de Cour Java
64/213
j:
I= 1!+-G5*5A> @5 /+ 1/+))5d
E MA)>-=1D0A) )#?1(YU=5) 5Q?1=>?5) += 1!+-G5*5A> @5 /+ 1/+))5 @+A) /+ HJO
! S+) u /[(A)>+A1(+D0A @[06C5>
!
S/=) G?A?-+/ U=5 /[(A(D+/()+D0A @5) +"-(6=>) )>+DU=5)static int[] tab = new int[100];
class Exemple {static int[] tab;
static {// exécuté au chargement de la classetab = new int[20];for(int i=0; i
8/15/2019 Support de Cour Java
65/213
je
N?-(>+G5 _9`
E l !?-(>5 @5 O b
E L0A@(D0A)
!
O @0(> Œ>-5 4()(6/5 _#=6/(U=5 *Œ*5 #+1p+G5`! O 5)> @?-(4+6/5 _A0A YA+/5`
E l !?-(>5 @5 >0=) /5) *5*6-5) &%*#'6') 5> &3K5!L) @5 O )+=, /5) 10A)>-=1>5=-)!
W5) *5*6-5) &%!(') A5 )0A> C+*+() >-+A)*()
E
l A[!?-(>5 U=5 @[=A5 -1EF1 1/+))5 @(-51>5
E i0=>5 1/+))5 !?-(>5 @5 java.lang.Object
O
l
8/15/2019 Support de Cour Java
66/213
jj
N?-(>+G5 _7`
E )=#5- $ 15 U=( 4(5A> @5 /+ 1/+))5 *X-5
E
>!() $ 10A15-A5 /[06C5> 10=-+A>
public class F extends M { public F() {super(); // appel du constructeur de M// initialisations spécifiques
}
}
super(champ1, champ2); // appel de constructeur
super.methode();super.attribut;super.super.attribut // illégal
?,? !(
8/15/2019 Support de Cour Java
67/213
jk
a?,?-5A15 >!() public class C {
String chaine1, chaine2; public C() {
chaine1 = "CHAINE1";chaine2 = "CHAINE2" ;
}void methode1(String chaine1, String c) {this.chaine1 = chaine1;chaine2 = c;
}
void methode2() { methode1("e","f");this.methode1("",""); // utile ?
}
}
3 /(Y?
8/15/2019 Support de Cour Java
68/213
jf
30*) U=+/(Y?)
class M { protected int a;}
public class F extends M {
protected double a; public void toto() {
athis.a
super.a((M)this).a((F)this).a
}}
@>A1 M H$ L*/$ L*:&!5$ Q
8/15/2019 Support de Cour Java
69/213
E l0-*5 ,0->5 ! a5@?YA(D0A ; 8!%00/7/6<
! …5) #0=- @5) 1/+))5) @[=A5 *Œ*5!(?-+-1!(5
jh
S0/P*0-#!()*5
E
l0-*5 ,+(6/5 ! !0@5 ; 8!%0(8+7/6!0@5) @5 )(GA+>=-5) @(v?-5A>5)J0(>=-5
R +4+A15-_>5*#) $ 5AD5-`R +4+A15-_@()>+A15 $ -?5/`
J0(>=-5
R +q1!5-_`|
J?!(1=/5
R +q1!5-_`|
8/15/2019 Support de Cour Java
70/213
J0(>=-5
b
b
k8
VT N?-(>5- d
E F1-(-5 =A5 1/+))5 B'O!L35$ U=(-5#-5A@ /5) 1+-+1>?-()DU=5)10**=A5) @5) 1/+))5)
B*!#3%$ 5> H.:!*"
E 30=) +//0A) *0@(Y5- /5)1/+))5) #0=- >5)>5- /5#0/P*0-#!()*5
.D5/42(%
b
b
L+*(0A
b
b
class Vehicule {
8/15/2019 Support de Cour Java
71/213
k9
class Vehicule {String immat;
public Vehicule(String im) {
immat = im;} public void afficher() {
S.o.p("Je suis un vehicule "+immat);}
}
class Voiture extends Vehicule {String immat;
public Voiture(String im) {super(im);}// afficher ?
}
Voiture v = new Voiture("300 ISI 63");v.afficher();
public class Vehicule {
8/15/2019 Support de Cour Java
72/213
k7
public class Vehicule { public void afficher() {
System.out.println("Vehicule");}
public static void main(String[] param) { Vehicule v = new Vehicule(); Voiture w = new Voiture();Camion c = new Camion();
Vehicule z = new Voiture();
Voiture i = new Vehicule();}
}
class Voiture extends Vehicule {
public void afficher() {System.out.println("Voiture");
}}class Camion extends Vehicule {
}
I##5/5- /5) *?>!0@5) +q1!5-_` @5) 06C5>)
8/15/2019 Support de Cour Java
73/213
8/15/2019 Support de Cour Java
74/213
k:
O?>!0@5) 4(->=5//5) 0= YA+/5) b
E
O?>!0@5) 4(->=5//5)! S+- @?,+=>
! L0A)>-=1D0A @[=A5 >+6/5 @5 *?>!0@5) #0=- =A5!(?-+-1!(5
!
a51!5-1!5 @+A) 15"5 >+6/5 _/5A>5=- b` Vehicule v = new Voiture();v.afficher();
E O?>!0@5) YA+/5)!
30A -5@?YA())+6/5) @+A) /5) 1/+))5) Y//5)! S/=) -+#(@5) U=5 /5) *?>!0@5) 4(->=5//5)
! L0A)5(/ $ +115))5=-) 5A YA+/
Choix opposé au C++
E W5 @5-A(5- *0> $ /+ HJO 581"'81 E
8/15/2019 Support de Cour Java
75/213
8/15/2019 Support de Cour Java
76/213
kj
L/0A+G5
E L0#(5- =A 06C5> #0=- A5 #+) /5 *0@(Y5-! S+) @5 10A)>-=1>5=- @5 10#(5
E
M*#/?*5A>5- Cloneable! )5=/5*5A> u #-?45A(- /5 10*#(/+>5=-
E I##5/5- /+ *?>!0@5 clone() @5 /+ 1/+))5 *X-55A public
E
!0@5 clone() @yObject 5)> ?G+/5*5A> +##5/?5 5A !+=> @5 /y?1!5//5
E i-+(>5- /5) 5Q15#D0A) @+A) clone()
class Trooper implements Cloneable {
8/15/2019 Support de Cour Java
77/213
kk
p p { public Object clone() {
Trooper object = null;try {object = (Trooper) super.clone();
} catch(CloneNotSupportedException cnse) {cnse.printStackTrace(System.err );
}
// s'occuper des attributs "compliqués"// pour éviter la copie de surface// (shallow copy ) si object != null
return object;
}}
L0#(5 @5) >P#5) #-(*(D,)L0#(5 @5) -?,?-5A15)
B6C5>) A0A *=>+6/5) _-(AG`
ZQ15#D0A) >-+(>?5)+= 1!+#(>-5 )=(4+A>
8/15/2019 Support de Cour Java
78/213
kf
3(45+=Q @[+11X)
E ;%!(' Ž &%!(.#$ $ *Œ*5 1/+))5
E ;%*#'6' Ž &%*#$L#$/ $ *Œ*5 #+1p+G5 0=
)0=)T1/+))5 @y=A #+1p+G5 @(v?-5A>! O0(A) -5)>-(1D, U=5 /5 LRR s
! \(v?-5A> 5A KOW ?G+/5*5A>
E ;.LR.6$ Ž T _#+- @?,+=>` $ #+1p+G5!
5 @5 ,-(5A@ @= LRR
! \I3^ZaZK
E ;3K5!L $ >0=> /5 *0A@5
8/15/2019 Support de Cour Java
79/213
ZA1+#)=/+D0A g 4()(6(/(>?
kh
public class C1 {
public int a; protected int b;
int c;
private int d;
}
public
class C3 {
...
}
public class C5 {
...
}
+ 6 1 @I115))(6/5 #+- L7I115))(6/5 #+- LVI115))(6/5 #+- L:I115))(6/5 #+- Le
S+1p+G5 #9 S+1p+G5 #7
public class C4 extends C1 {...
}
public class C2
extends c1 {...
}
i(-? @5 † Z/?*5A>) @5 #-0G-+**+D0A HIJI ‡n B/(4(5- \5@(5=n M3aMI
8/15/2019 Support de Cour Java
80/213
f8
O?>!0@5) 5> 1/+))5) +6)>-+(>5)
E O0>T1/? +6)>-+1> _*0@(Y1+>5=-` B]WM^IiBMaZ
E O?>!0@5 +6)>-+(>5
!
+D0AE L/+))5 +6)>-+(>5
! i0=>5 1/+))5 +451 += *0(A) =A5 *?>!0@5 +6)>-+(>5BK IWBa< >0=>5 1/+))5 @?1/+-?5 10**5 >5//5
_)+A) +6)>-+1>n 5//5 )5-+(> (A)>+A1(+6/5`! 30A (A)>+A1(+6/5
! S5-*5> @[(*#/?*5A>5- /+ A0D0A @5 10A15#>
public abstract class Vehicule1 {p blic oid afficher() {
8/15/2019 Support de Cour Java
81/213
f9
public void afficher() {System.out.println("Vehicule");
}
}
class Voiture2b extends Vehicule2 { public void afficher() {}
}
public abstract class Vehicule2 {abstract public void afficher() ;
}
class Voiture2a extends Vehicule2 {}
ERREUR : must implement the inherited method
abstract class Voiture2a extends Vehicule2 {}
NON instanciable, sans méthode abstraite
NON instanciable, avec méthode abstraite
NON instanciable
instanciable
, _ `KK/61%0L+4%MM
8/15/2019 Support de Cour Java
82/213
MA>5-,+15 _9`
E
\5)1-(#D0A % 10A>-+>! W()>5 @5 *?>!0@5_)` )+A) 10@5! …L0A)>+A>5)… +=>0-()?5) _ '2B(/4 "1+F4 G6+( #+- @?,+=>`! S+) @5 4+-(+6/5%+"-(6=> wKOWx!
† L/+))5 4(->=5//5 #=-5 ‡ wLRRx
f7
H I8J%0@9
H +!+64%0@9
N(8J+61
interface Flottant { public static final int CONSTANTE = 30;
double PI = 3.14;
public abstract void flotter(); public void avancer();}
par défaut
f
MA>5-,+15 _7`
8/15/2019 Support de Cour Java
83/213
MA>5-,+15 _7`
E
wJ01+6=/+(-5 x MOSWZOZ3iZa =A5 (A>5-,+15
E
MA)>+A1(5- =A5 1/+))5 b
E S0/P*0-#!()*5 b
fV
public class Bateau implements Flottant { public void flotter() {} public void avancer() {}
}
public class Vehicule {public void afficher() {
8/15/2019 Support de Cour Java
84/213
f:
public void afficher() {System.out.println("Vehicule");
} public static void main(String[] param) { Vehicule v = new Voiture();((Voiture)v).embrayer();(( Manuel)v).embrayer();System.out.println(Manuel.VITESSES);
}}
interface Manuel { public static final int VITESSES = 5; public void embrayer();
}class Voiture extends Vehicule implements Manuel {
public void afficher() {System.out.println("Voiture");
} public void embrayer() {
System.out.println("Boite manuelle");
}}
1/+))5 @= >P#5 @5/[(A>5-,+15 U=[5//5(*#/?*5A>5
8/15/2019 Support de Cour Java
85/213
fe
MA>5-,+15 _V`
E
M*#/?*5A>+D0A *=/D#/5 @y(A>5-,+15)E
aISSZW $ N?-(>+G5 )(*#/5 )5=/5*5A>
E S+-+@5 u /y!?-(>+G5 *=/D#/5d
public class B extends A implements IC, ID {// …
}
N? (> /D / b a5/+D0A A0A )P*?>-(U=5
8/15/2019 Support de Cour Java
86/213
N?-(>+G5 *=/D#/5 b
fj
?>5A@
(*#/?*5A>5
/61%0L+4%
a5/+D0A A0A )P*?>-(U=5r -+()0A ,0A1D0AA5//5
class H extends A, B {…
}
class H extends A implements F {…
}
J?!(1=/5 J?!(1=/5
8/15/2019 Support de Cour Java
87/213
fk
LRR $• !?-(>+G5 4(->=5/•
10Am(> @5 *?>!0@5 b
H +!+64%0@9
+4+A15-_`b
H I8J%0@9
H +!+64%0@9
KK/61%0L+4%MMN(8J+61
#+) @5 10Am(>
H +!+64%0@9
8/15/2019 Support de Cour Java
88/213
MA>5-,+15 _:`
E N?-(>+G5 *=/D#/5 @[(A>5-,+15)
ff
interface IC {
}
interface ID {}
interface I extends IC, ID {// …
}
8/15/2019 Support de Cour Java
89/213
fh
a5/+D0A) 5A>-5 06C5>)
E a5/+D0A
E IG-?G+D0A
E
L0*#0)(D0AE a?,?-5A15 0= >+6/5+= @5 -?,?-5A15)
E KD/()5- =A 10A>5A5=- )#?1(YU=5
!
L0//51D0A)
!
ZQ $ java.util.ArrayList
public class Zoo {static final int NB_ANI = 50;
i l[] i
8/15/2019 Support de Cour Java
90/213
h8
Animal[] animaux; public Zoo() {
// pas de création d'objet, sinon le constructeur
// par défaut serait obligatoireanimaux = new Animal[NB_ANI];
} public void placerAnimal(int i, Animal a) {
// if ((i>=0) && (i
8/15/2019 Support de Cour Java
91/213
h9
// ajouter dans la classe Zoo public Animal quelAnimal(int i) {
return animaux[i];}
// ajouter dans la class Animal public void afficher() {
System.out.println(nom);
}
// ajouter dans la methode main()zoo.quelAnimal(0).afficher(); // c'est bon// c'est la meme chose que d'écrire
// zoo.animaux[0].nom// si animaux et nom sont publicszoo.quelAnimal(1).afficher(); // NullPointerzoo.quelAnimal(60).afficher(); // ArrayOutOfBounds
8/15/2019 Support de Cour Java
92/213
h7
i+6/5+=
E \5 )1+/+(-5)! intn doublen charn d
! KA5 1+)5 r =A )1+/+(-5 =D/()+6/5 @(-51>5*5A>
E \[06C5>)
! KA >+6/5+= @5 -?,?-5A15) )=- @5) 06C5>) @5 /+ 1/+))5
! a?,?-5A15) (A(D+/()?5) u null
!
S+) @5 1-?+D0A @y06C5>) #+- @?,+=> 10**5 5A LRR! MA(D+/()5- 1!+U=5 ?/?*5A> @= >+6/5+= #0=- /[=D/()5-
a? ?
8/15/2019 Support de Cour Java
93/213
hV
a?)=*?
E N?-(>+G5 )(*#/5 )5=/5*5A>
E M*#/?*5A>+D0A *=/D#/5 @y(A>5-,+15)
E
O821%" /5) *?>!0@5) )0A> 4(->=5//5)E KA5 1/+))5 N".55 Ay5)> #+) @?-(4+6/5
E i0=) /5) 1/+))5) @?-(45A> @5 java.lang.Object
[Modificateur]* class identifiant[extends classe_de_base ][implements interface {, interface}* ] {
}
8/15/2019 Support de Cour Java
94/213
e' ZQ15#D0A)
ZQ15#D0A)
8/15/2019 Support de Cour Java
95/213
he
ZQ15#D0A)
E
O+A(X-5 ?/?G+A>5 5> 5q1+15 @5 G?-5- /5) 5--5=-)#0>5AD5//5) @y5Q?1=D0A
E l0A1D0AA5*5A> )(*(/+(-5 += LRR
E KA5 5--5=- #0>5AD5//5 ! =A5 5Q15#D0A
E N(?-+-1!(5 @5) 5Q15#D0A)
E
KA5 5--5=- r =A5 (A)>+A15 @[5Q15#D0A
E S+-D5 (A>?G-+A>5 @5 /+ )(GA+>=-5 @[=A5 *?>!0@5
E
B6/(G+D0A @5 /545- /5) 5Q15#D0A)
Double parseDouble(chaine);
8/15/2019 Support de Cour Java
96/213
hj
Double.parseDouble(chaine);
3" /*3K5$3"$
$SL$&7*"
H.) "*%:.5 H.) T$SL$&7*""$5T
L0*#0->5*5A> +@+#>?
a5#0->5- /[5--5=-+= A(45+= )=#?-(5=-
•
5- /[5--5=-
B]WM^IiMB3 \Z iaIMiZa K3Z ZLZSiMB3
TUVPWTT/!ST
ZQ5*#/5
8/15/2019 Support de Cour Java
97/213
ZQ5*#/5
hk
public void somme(String chaine) {res = Double.parseDouble(chaine);total += res;
} 1%%$3% /$ L*:&!5.7*"Q
public void saisie {String chaine = System.console().readLine();
while (!chaine.isEmpty()) {
somme(chaine);chaine = System.console().readLine();
}
I"-+#5- =A5 5Q15#D0A
8/15/2019 Support de Cour Java
98/213
# #
hf
public void somme() {
double res = .0;try {// bloc à surveillerres = Double.parseDouble(chaine);total += res;
} catch (NumberFormatException e) {System.out.println(e.getMessage());// ou e.printStackTrace();
} finally {// Clause TOUJOURS exécutée
}}
A%.!#$:$"# ./.' X 5Y$%%$3%
/'L%!#$
8/15/2019 Support de Cour Java
99/213
#
hh
public void somme()
throws NumberFormatException {double res = .0;res = Double.parseDouble(chaine);total += res;
}
public void saisie() {
somme(chaine);
}
>" "\. 4.!# 83$ %$L35$% Q
A%.!#$% 5\$SL$&7*" M
#%9 ]L.#LO *3 #O%*^)
='L5.%.7*" /$ 5\$%%$3% &*#$"7$55$
>K5!6.#*!%$ &*3% 5$ L*:&!5.#$3%
N(?-+-1!(5 @5) 5Q15#D0A)
8/15/2019 Support de Cour Java
100/213
N(?-+-1!(5 @5) 5Q15#D0A)
988
ZQ15#D0A
MBZQ15#D0A a=AD*5ZQ15#D0A
3=//S0(A>5-ZQ15#D0A
MA@5QB=>B,]0=A@)ZQ15#D0A
l(/530>l0=A@ZQ15#D0A
^5)D0A@(v?-5A1(?5
B-@-5 @5) 6/01) 4+145
8/15/2019 Support de Cour Java
101/213
989
B-@-5 @5) 6/01) 4+145
try {// code à tester
} catch (Exception e) {e.printStackTrace();
} catch (IOException e) {// traitement adapté
}try {
// code à tester
} catch (IOException e) {// traitement adapté
} catch (Exception e) {e.printStackTrace();
}
Compilateur : Already caught
Exception
Exécution du1er bloc quicorrespond
[C++] masquage
try {OŒ*5 >-+(>5*5A> b
8/15/2019 Support de Cour Java
102/213
987
y {// bloc à surveiller
} catch (NumberFormatException e) {
e.printStackTrace();throw e;
} catch (IOException e) {e.printStackTrace();
throw e;}
try {// bloc à surveiller
} catch (NumberFormatException |IOException e ) {
e.printStackTrace();throw e;
}
2Z:$ #%.!#$:$"#
k
8/15/2019 Support de Cour Java
103/213
]/01 G6+((P
E B#D0AA5/
E iBKHBKa< 5Q?1=>?
! OŒ*5 )( +=1=A5 5Q15#D0A A[+ ?>? /54?5
! OŒ*5 )( =A5 (A)>-=1D0A 486F62%n B0%+; 0= 0%1206 )5 >-0=45@+A) /5 6/01 10P
! !-5+@ 0= @5 HJO
E
KD/(>? +451 =A /+AG+G5 @0>? @[=A -+*+))5T*(5"5) bbb! W(6?-5- /5) -5))0=-15)
! l5-*5- @5) Y1!(5-)n #+- 5Q5*#/5
! O0PQ=/15Q0%"8204%"
98V
k
8/15/2019 Support de Cour Java
104/213
98:
ZQ15#D0A #5-)0AA+/()?5
E ZQ15#D0A @?-(45 @5 Throwable! Error
! Exception
E
\?-(45- @yException
!
8/15/2019 Support de Cour Java
105/213
98e
return "Op impossible : découvert trop grand";}
}
public class CompteBancaire {double solde = 0.0;double decouvert = -700.; // … autorise
public void retrait(double montant)throws ArithmeticException, AutorisationException {double nouveau = solde – montant;if (montant
8/15/2019 Support de Cour Java
106/213
98j
L0A1/=)(0A 5Q15#D0AA5//5
E S0=- >0=>5 5Q15#D0A @?1/5A1!?5n /510*#(/+>5=- !:&*)$ =A >-+(>5*5A>
9'
]/01 try/catch U=( GX-5 15"5 5Q15#D0A
7' S+))+G5 @5 /[5Q15#D0A += A(45+= )=#?-(5=-_+##5/+A>`'
!
W[5Q15#D0A +##+-+(> +/0-) @+A) /+ )!6".#3%$ @5 /+*?>!0@5
S+))+G5 += A(45+= )=#?-(5=-
8/15/2019 Support de Cour Java
107/213
98k
// exemple d'utilisation convertir("90");
public double convertir(String n)throws NumberFormatException
{double res = Math.PI /180;try {
res *= Double.parseDouble(n);} catch(NumberFormatException e) {
res = .0;}
return res;}
Z--5=- @= 10*#(/+>5=-
^?-5- /01+/5*5A> /[5Q15#D0A
G #
8/15/2019 Support de Cour Java
108/213
j' ](6/(0>!XU=5) G-+#!(U=5)Ici g 5-A+D45) M]O $
8/15/2019 Support de Cour Java
109/213
98h
Ici !" -+1> c(A@0& i00/p(> _java.awt.*`! …l(G?… @5#=() 9'9
! S-?)5A> @+A) /5) A+4(G+>5=-) )+A) #/=GT(A
!
^5)D0A @5) ?4?A5*5A>) 06)0/X>5
! L0*#0)+A>) /0=-@)
E ) /?G5-)
!
8/15/2019 Support de Cour Java
110/213
998
ZQ5*#/5 @ +##/(1+D0A
8/15/2019 Support de Cour Java
111/213
999
) @5 !+=>TA(45+= _/0=-@)`! JFramen JDialogn JApplet
E
L0A>5A5=-)!
JPaneln JScrollPanen JToolBarE L0*#0)+A>) 6+)(U=5)
! JMenun JButtonn JLabel
E
\5))(A5-!
Canvas _Ici`n JPanel _) X*5 _W00p g l55/` 3B3 I]Ba\F
8/15/2019 Support de Cour Java
112/213
997
8/15/2019 Support de Cour Java
113/213
99V
8/15/2019 Support de Cour Java
114/213
99:
8/15/2019 Support de Cour Java
115/213
99e
import javax.swing.*;L+) 9
ZQ5*#/5 @= >=>0-(5/ 0q1(5/
8/15/2019 Support de Cour Java
116/213
99j
public class HelloWorldSwing { private static void createAndShowGUI() {
JFrame frame = new JFrame("HelloWorldSwing");
JLabel label = new JLabel("Hello World");frame.getContentPane().add(label);
frame.pack();frame.setVisible(true);
}
public static void main(String[] args) {
createAndShowGUI();
}}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
}});
JFrame.setDefaultLookAndFeelDecorated(true);
L+/1=/ @5 /+ >+(//5Z> +q1!+G5
^5)D0A @5) >!-5+@)Z> 1/+))5 (*6-(U=?5
invokeLater(new Runnable() {
8/15/2019 Support de Cour Java
117/213
E
L/+))5 !:K%!83'$ @(>5 ."*"9:$E -&'L!.5!)$ /+ 1/+))5 @0AA?5 0=!:&5':$"#$ /[(A>5-,+15 @0AA?5
E \?1/+-?5 u /+ 40/?5 % =D/()?5 U=[=A5 )5=/5 ,0()
E
L0*#(/?5 +451 =A A0* +-6(>-+(-5nomclasseenglobante$nombre.class
99k
( () { public void run() {
// faire qq chose}
});
8/15/2019 Support de Cour Java
118/213
99f
O+A(#=/5- =A5 ,5AŒ>-5 b _9`
E MA)>+A1(5- =A 06C5> JFrame
9' \?1/+-? u /+ 40/?5 @+A) =A *?>!0@5 |T_
! 35 #5=> Œ>-5 -?=D/()? +(//5=-)
7'
8/15/2019 Support de Cour Java
119/213
99h
}
static public void main(String[] argv) {
MonApplication ma = new MonApplication(); ma.afficher();
}}
public class MonApplication {JFrame frame;
public MonApplication() {frame = new JFrame("Mon Application");
}
static public void main(String[] argv) { MonApplication ma = new MonApplication(); ma.afficher();}
}
public void afficher() {frame.pack();frame.setVisible(true);
}
public void afficher() { pack();setVisible(true);
}
L+) V
8/15/2019 Support de Cour Java
120/213
978
O+A(#=/5- =A5 ,5AŒ>-5 b _7`
L+) /5 #/=) G?A?-+/ 5> -510**+A@? sWy+##/(1+D0A GX-5 @5) ,5AŒ>-5) )#?1(+/()?5) s
€ / /
8/15/2019 Support de Cour Java
121/213
979
]0€>5 @5 @(+/0G=5 )(*#/5
E L/+))5 JOptionPane
E O?>!0@5) )>+DU=5) showXXXDialog
! O5))+G5n L0AY-*n B#D0An MA#=>
JOptionPane.showConfirmDialog(frame,"Alors, ça vous plaît ?");
, Œ
8/15/2019 Support de Cour Java
122/213
977
B=4-(- =A5 ,5AŒ>-5
E Iq1!5- =A5 +##/(1+D0A G-+#!(U=5 )(*#/5+G-?G5+A> =A -N0+&%
E
IC0=>5- =A5 60(>5 @5 @(+/0G=5 :*/.5$
@ b
8/15/2019 Support de Cour Java
123/213
97V
IC0=>5- @5) 10*#0)+A>) b
E ‹=5 )5 #+))5T>[(/ b
E 3?15))(>? @5 #0)(D0AA5- /5) ?/?*5A>)
E
‹=( #5=> -51540(- @5) 10*#0)+A>) b
! L0*#0)+A>) @5 !+=> A(45+=
! L0A>5A5=-)
! R+6%("
// après frame.getContentPane().add(label);// dans HelloWorldSwing
frame.getContentPane().add(new JLabel("2"));
(D
8/15/2019 Support de Cour Java
124/213
97:
S0)(D0AA5*5A>
E
S/+15- @5) 10*#0)+A>)! i+(//5 _YQ5n *(A(*+/5n *+Q(*+/5 5> #-?,?-?5`
! S0)(D0A -5/+D45 _#0->+6(/(>?`
!
S0)(D0A +6)0/=5 _5Q>5A)(0A H]=(/@5-`E S0/(DU=5 @5 #/+15*5A> @[=A 10A>5A5=- $ W+P0=>! Hl-+*5n H\(+/0Gn HS+A5/n d
E L0*#/5Q5 u *+A(#=/5-
!
L0A>5A5=-) 5> W+P0=>) )#?1(+/()?) 5A 1+)1+@5! ^KM ]=(/@5-
E O+D))5 % 35>65+A) +451 ^-0=#W+P0=>
E c(A@0&]=(/@5- % Z1/(#)5
E MA>5//(H
W O _9`
8/15/2019 Support de Cour Java
125/213
97e
W+P0=> O+A+G5- _9`
!"#$%%@0&A/0+@'0-+1/5'10*%C+4+)5%>=>0-(+/%=()&(AG%/+P0=>%4()=+/'!>*/
S0(A>) 1+-@(A+=Q N0-(•0A>+/
0= 45-D1+/
L0*#/5Q5 *+()#=())+A>
l0-*=/+(-5
W O _7`
8/15/2019 Support de Cour Java
126/213
97j
W+P0=> O+A+G5- _7`
E l/0&
E ]0Q
E
]0-@5-
E ^-(@
E L+-@
E ^-(@]+G
E
$• BorderLayout #0=- /5 contentPane @= JFrame•
FlowLayout #0=- =A JPanelS+1p+G5 $ java.awt
B
8/15/2019 Support de Cour Java
127/213
97k
BA >5)>5 d
E i5)>5- /5 BorderLayout …! +451 =A 60=>0A @+A) 1!+U=5 •0A5
! 30-@n n B=5)>n L5A>-5
E
i5)>5- /5 FlowLayout ! d 5A +C0=>+A> @5) 60=>0A)
frame.getContentPane().setLayout(new FlowLayout());for (int i=0; i < 5; ++i)
frame.getContentPane().add(new JButton(new String(i)));
• ""+i Passage par StringBuffer
• (new Integer(i)).toString()
•
String.valueOf(i)
L!+AG5-/+ >+(//5 @5/+ ,5AŒ>-5
contentPane (JFrame) pane = new JPanel();
8/15/2019 Support de Cour Java
128/213
97f_W+P0=>) #+- @?,+=> @5) 10*#0)+A>)`
frame.getContentPane().add(pane, BorderLayout.CENTER);
B ( D !
8/15/2019 Support de Cour Java
129/213
97h
B-G+A()+D0A #+- 10=1!5)
a00> S+A5
W+P5-5@ S+A5
^/+)) S+A5
O5A=]+- L0A>5A>S+A5
F.9*3# 2.".6$%
L9 L7 d d LA
F ? > _9`
8/15/2019 Support de Cour Java
130/213
9V8
F4?A5*5A>) _9`
E L0**=A(1+D0A 5A>-5 /5) 10*#0)+A>) @[=A5+##/(1+D0A 5> /[=D/()+>5=-! ZA40( @5 *5))+G5)! I##5/ @5 *?>!0@5) @y=A5 (A>5-,+15
E MA>?-5))?_5` #+- =A ?4?A5*5A> b9' J?-(Y5- U=5 /5 10*#0)+A> #5-*5> @yP -?#0A@-57'
F1-(-5 =A G5)D0AA+(-5V'
ZA-5G()>-5- /5 G5)D0AA+(-5 +=#-X) @= 10*#0)+A>
F4?A5*5A>) _7`
8/15/2019 Support de Cour Java
131/213
I1D45- =A H]="0A
L!0()(- =A *5A=I##=P5- )=- =A5 >0=1!5 _,01=)`
I##=P5- % -5/‘1!5- =A 60=>0A @5 )0=-()
ZA>-5- 0= )0-D- @y=A 10*#0)+A> +451 /+ )0=-()
\?#/+15- /+ )0=-()
KD/()5- /+ *0/5"5
\?#/+15- /+ ,5AŒ>-5
a?@=(-5 /+ ,5AŒ>-5l5-*5- /+ ,5AŒ>-5
L!+AG5- /+ >+(//5
9V9
I1D0A
a5G-0=#5*5A> ,0A1D0AA5/ rO0=)5W()>5A5-
I1D45- =A H]="0A _+1D0A`
8/15/2019 Support de Cour Java
132/213
_ `
9'
Z1-(-5 /5 G5)D0AA+(-5
7'
ZA-5G()>-5- /5 G5)D0AA+(-5
9V7
class Gestionnaire implements ActionListener { public void actionPerformed(ActionEvent e) {
// ce qu'il y a à faire} }
JButton bouton = new JButton("Libellé"); bouton.addActionListener(new Gestionnaire());
Iq1!5- =A5 60(>5 @5 @(+/0G=5 +451 /5 #-0G-+**5 #-?1?@5A>
Z > % W( > % I@ >
8/15/2019 Support de Cour Java
133/213
Z45A> % W()>5A5- % I@+#>5-
E Z45A>
E W()>5A5-
!
!
W()>5 @5) *?>!0@5) % *5))+G5) #0))(6/5)
48&'8"+61 '+@@#!%61 W()>5A5-_`
E I@+#>5-
!
S+>-0A @5 10A15#D0A % 7%"/ _9`
8/15/2019 Support de Cour Java
134/213
9V:
I 6+) /5) 60=>0A) d _9`
E
Iq1!5- U=5/U=5) 60=>0A)E MA1-?*5A>5- /+ 4+/5=- @[=A 60=>0A u 1!+U=5 ,0()
U=5 /[0A 1/(U=5 @5))=)
E
IC0=>5- =A5 60€>5 @5 10AY-*+D0A #0=- /+ )0-D5@= #-0G-+**5
I 6+) /5) 60=>0A) d _7`
8/15/2019 Support de Cour Java
135/213
9Ve
E ]0=>0A b
9'
5-
7'
KD/()5- JButton @(-51>5*5A>
E
^5)D0AA+(-5 b9'
KA5 (A)>+A15 #0=- >0=) /5) 60=>0A)
7'
KA (A)>+A15 #+- 60=>0AE S0))(6(/(>? $ /5 60=>0A /=(T*Œ*5
O0A]0=>0A
Š10*#>5=- $ (A>
R O0A]0=>0A_`|
R (A1-5*5A>5-_`|
H]="0A
DEPRECATED
(A>5-,+15’’I1D0AW()>5A5-
I 6+) /5) 60=>0A) _V`
8/15/2019 Support de Cour Java
136/213
I 6+) /5) 60=>0A) _V`
E 5*5A> #+- @?,+=>
!
^5)D0AA+(-5E )!0&L0AY-*\(+/0G
E Z4?A5*5A> b
! ‹=("5-
9Vj
FENETRE PAS ENCORE FERMEE
L0A>5Q>5 G-+#!(U=5
8/15/2019 Support de Cour Java
137/213
9Vk
L0A>5Q>5 G-+#!(U=5
E ]0€>5 u @5))(A
E I))01(? u =A5 ,5AŒ>-5 0= =A5 (*+G5
E
L/+))5 java.awt.Graphics
! L0=/5=-
! O0@5 @5 @5))(A _Ba d`
! S0/(15 @5 1+-+1>X-5)
!
I1D0A) 6+)(U=5) _ @-+&n Y//`E L/+))5 java.awt.Graphics2D
! S/=) @5 ,0A1D0AA+/(>?) 5A @5))(A
! L!+AG5*5A> @5 -5#X-5n >-+A),0-*+D0A)
_8 8`
B-(5A>+D0A #+- @?,+=>
8/15/2019 Support de Cour Java
138/213
9Vf
_8n8`
P
Q
_Q9nP9`
!5(G!>
&(@>!
graphics.fillOval(x1, y1, width, height);
\5))(A5-
8/15/2019 Support de Cour Java
139/213
9Vh
\5))(A5-
E
L+A4+) wIcix! L0*#0)+A> …/0=-@…
! void paint(Graphics g)
E
HS+A5/ w /?G5-
! B#+1(>?
! void paintComponent(Graphics g)
!
paint() 5Q()>5 *+() d
E L0A>5Q>5 G-+#!(U=5 …#-Œ>?… #+- /5 )P)>X*5
E O?>!0@5repaint()
#0=- *5"-5 u C0=-
JCanvas
8/15/2019 Support de Cour Java
140/213
JCanvas
E F>5A@-5 /+ 1/+))5 JPanel! B#+U=5 b @0=6/5 6=v5-(AG b
! W+P0=> (A=D/5 s
E
l(Q5- /+ >+(//5 @= 10*#0)+A>! PreferredSize _=D/()?5 #+- pack()`
! MinimumSizen MaximumSize
E
a5@?YA(- paintComponent()! z A5 C+*+() +##5/5- @(-51>5*5A>
! I##5/5- super.paintComponent(g) )( 65)0(AE Zv+15 /5 10*#0)+A>
9:8
8/15/2019 Support de Cour Java
141/213
9'
5=- …YQ5…7'
^?-5- /[+##=( @= 60=>0A $ G?A?-5- =AA0=45/ +q1!+G5 _+/?+>0(-5 0= )(A=)0“@+/`
9:9
8/15/2019 Support de Cour Java
142/213
5A@ JPanel• -5@?YA(> paintComponent(…) r’ @5))(A
• 10**5A15- #+- =A -51>+AG/5 >0=> )(*#/5• #-?1()5 /+ >+(//5 #-?,?-?5
setPreferredSize(new Dimension(800,600));
c Z
3
<
Math.random()
getParent().repaint()
]+--5 @5 *5A=)
8/15/2019 Support de Cour Java
143/213
9:V
l(1!(5-
30=45+=B=4-(-
8/15/2019 Support de Cour Java
144/213
i!-5+@) _9`
8/15/2019 Support de Cour Java
145/213
9:e
i!-5+@) _9`
E S-015))=) …/?G5-…
! ZQ?1=D0A )(*=/>+A?5 % 10A1=--5A15
!
S+->+G5 @5 @0AA?5)E V *?>!0@5)
! M*#/?*5A>5- 026@ 9 @5 S266+B(%
!
\?/?G=5- u =A #$%42180_java.util.concurrent)
! a5@?YA(- /+ *?>!0@5 026@ 9 @5 O50%+7
e
i!-5+@) _7`
8/15/2019 Support de Cour Java
146/213
9:j
// Exemple avec implémentation d'interface
// Modélisation : créer une nouvelle tâcheclass Tache implements Runnable {
// implémenter run()}
// AILLEURS :Tache tache = new Tache();(new Thread(tache)).start();
// Exemple avec spécialisation de classe// Modélisation : créer un nouveau type de Threadclass Special extends Thread {}
Special special = new Special();special.start();
LB3
8/15/2019 Support de Cour Java
147/213
9:k
i!-5+@) _V`
E
!0@5) 5> @0AA?5)! O?>!0@5%"1+1%&%61 U=+/(Y? !"#$%&'#()*+
! J+-(+6/5 U=+/(Y?5 -'./0.*
!
J+-(+6/5 U=+/(Y?5 1#/. _23345/6.*7 E
O?>!0@5 "1+01@ 9 #0=- @?*+--5-
E
O?>!0@5) /61%002'1@ 9 0= "(%%'@ 9
E W[+--Œ> @0(> Œ>-5 3IiKaZW!
/+ *?>!0@5 026@ 9 @0(> )5 >5-*(A5- A0-*+/5*5A>
! ZQ $ >5)> @[=A5 4+-(+6/5 @[+--Œ>
! "18'@ 9 5)> 06)0/X>5
i!-5+@) 5>
8/15/2019 Support de Cour Java
148/213
i!-5+@) 5> )
E
l(/ @5) ?4?A5*5A>) :*"*#O%$./
! S+>-0A OJL $ 10A1=--5A15 @(q1(/5
! MA>5-,+15 #5=> Œ>-5 YG?5 ,+1(/5*5A>
!
?-(5=- += #+>-0A ZQ51=>0-`
9:f
i!-5+@) 5>
8/15/2019 Support de Cour Java
149/213
9:h
i5*#)
l(A\?6=>
AO%$./ /$) '('"$:$"#)
&.!"# &.!"#L5!L
;.!"# I L.5L35 #%[) 5*"6 Q
H.5L35 #%[) 5*"6 Q
!"!#) 6L
I1D0A) )(*#/5))=115))(45)
]/01+G5 @5/[(A>5-,+15
;.!"# I L.5L35 5*"6 Q
L+/1=/ 5A +--(X-5T#/+A $ (A>5-,+15 /(6-5
8/15/2019 Support de Cour Java
150/213
E i+1!5 $ G?A?-+D0A +/?+>0(-5 @5 -51>+AG/5) +451=A5 10*#0)+A>5 +/#!+ _10=/5=- a^]I`
E
O5A= $ a+,-+(1!(- 5> U=("5-E
…‹=("5-b… #+- /5 *5A= 5> /+ 1-0(Q
E ]/01+G5 @5 /[(A>5-,+15 b
E
^?-5- /5 -5@(*5A)(0AA5*5A> 9e8
MA>5-,+15 G-+#!(U=5 g>‘1!5 /0AG=5
F/?*5A>) @5 -?#0A)5 _9`
8/15/2019 Support de Cour Java
151/213
F/?*5A>) @5 -?#0A)5 _9`
9' \5))(A5- @(-51>5*5A> @+A) #+(A>L0*#0A5A>_`
7' \5))(A5- @+A) =A5 (*+G5
! L-?5- =A5 (*+G5
!
\5))(A5- @+A) /y(*+G5
! Iq1!5- /y(*+G5
V' O()5 5A #/+15 @= >!-5+@
!
ZQ#0->5- /5 @5))(A @5 /y(*+G5 @+A) /5 -=A_` @y=A5 >‘1!5! \+A) #+(A>L0*#0A5A>_` $ M*+G5 u @5))(A5- b
E 30A $ /+A15- /5 1+/1=/ _/+A15*5A> @y=A >!-5+@`
E B=( $ +q1!5- /y(*+G5
9e9
i0=C0=-) @+A)#+(A>L0*#0A5A>_`
F/?*5A>) @5 -?#0A)5 _7`
8/15/2019 Support de Cour Java
152/213
F/?*5A>) @5 -?#0A)5 _7`
E
]=v5-5@M*+G5! i~SZ”M3i”Ia^]
! G-+#!(1)'@-+&M*+G5_(*Gn 8n 8n A=//`|
E KA5 )5=/5 *?>!0@5 U=("5-_` +##5/?5
! HB#D0AS+A5')!0&d
! 5*'5Q(>_`
9'
S+- /y(>5* @= *5A= T I1D0AW()>5A5-7' S+- /5 1/(1 )=- /+ )0=-() ; c(A@0&W()>5A5-
E Hl-+*5'\B”3BiNM3^”B3”LWB
8/15/2019 Support de Cour Java
153/213
9eV
O0@X/5 OJL
E O0@X/5 % J=5 % L0A>-/5=-
E W0G(U=5 +##/(1+D45 !" #-?)5A>+D0A
E \5)(GA_)` #+"5-A_)` % S+>-0A @5 10A15#D0A
! L0**=A?*5A> +@0#>? _=A @5) #/=) 4(5=Q`
! S+) >-(4(+/ @= >0=>
!
I ?4(>5- )=- /5) >-=1) )(*#/5)! I@0#>? #+-
8/15/2019 Support de Cour Java
154/213
8/15/2019 Support de Cour Java
155/213
f' l(1!(5-) g l/=Q
8/15/2019 Support de Cour Java
156/213
9ej
^5)D0A @5) 5A>-?5)%)0-D5) _9`
E l/=Q Z%< @5 @0AA?5) 6(A+(-5)
E l/=Q Z%< @5 1+-+1>X-5)
E
l/=Q Z%< @y06C5>)E L0**=A(1+D0A +451 @5) Y1!(5-)
E L0**=A(1+D0A +451 @5) -5))0=-15)
MA>5-A5>E
8/15/2019 Support de Cour Java
157/213
9ek
^5)D0A @5) 5A>-?5)%)0-D5) _7`
E
C+4+'(0! l/=Q @5 @0AA?5) _Y1!(5-n #(#5%>!-5+@)n d`
!
8/15/2019 Support de Cour Java
158/213
9ef
File
FileDescriptor
RandomAccessFile
OutputStream
StreamTokenizer
BufferedInputStreamDataInputStream
LineNumberInputStream
PushbackInputStream
BufferedOutputStream
DataOutputStream
PrintStream
ByteArrayInputStreamFileInputStream
FilterInputStream
PipedInputStream
SequenceInputStream
StringBufferInputStream
ByteArrayOutputStream
FileOutputStream
FilterOutputStream
PipedOutputStream
InputStream
Object
i(-? @5 † Z/?*5A>) @5 #-0G-+**+D0A HIJI ‡n B/(4(5- \5@(5=n M3aMI
8/15/2019 Support de Cour Java
159/213
l/=Q @y5A>-?5
8/15/2019 Support de Cour Java
160/213
9j8
MA#=>-5+*
MA#=>-5+*a5+@5-
l(/5MA#=>-5+*
I2$ 1%$1%
@4+0+41U0% '+0 4+0+41U0%9
5*'(A
I2$ %610D%486!%0"/86
\+>+MA#=>-5+* I2$ B/6+/0%
\+>+MA#=>-5+*
I2$4(+!/%0
-5+*i0p5A(•5-
486!%0"/86
-5+*i0p5A(•5-
486!%0"/86
I2$ 1%$1%
@/1%& '+0 /1%&9
G45/%0 %610D%
i(-? @5 !"#$%%&&&'A+&0=+p'A5>n ]' ]+1!5/5>
8/15/2019 Support de Cour Java
161/213
O0PQ=/15Q0%"8204%"k
8/15/2019 Support de Cour Java
162/213
O0P =/15 0%"8204%"
E a5))0=-15! i0=> 06C5> u ,5-*5- % /(6?-5- +#-X) =D/()+D0A
! l(1!(5-n m=Qn 1!+=))5"5n -5U=Œ>5
E
O?>!0@5 1/+))(U=5 _ 9'k`! close() @+A) 6/01 YA+//P r’ 5Q15#D0A /54+6/5
! ]/01 >-PT1+>1! 5AG/06+A> )=##/?*5A>+(-5 0= -5/+A15
E l5-*5>=-5 5> /(6?-+D0A +=>0*+DU=5 _9'kR`
! +Q5 )(*#/(Y?5
! MA>5-,+15 AutoCloseable9j7
k
8/15/2019 Support de Cour Java
163/213
// bloc try-with-resources
8/15/2019 Support de Cour Java
164/213
9j:
try (
BufferedReader br = new FileReader(nomFichier);FileReader fr = new BufferedReader(fr);){
String lecture; while ((lecture = br.readLine())!=null) {//
}} // Les ressources sont fermées automatiquementcatch (Exception e) {e.printStackTrace();
}
L5->+(A5) 5Q15#D0A) #5=45A> Œ>-5 /+A1?5) *+() 5//5) )0A> @())(*=/?5)'Z//5) )0A> >0=>5,0() -?1=#?-+6/5) 5A 1+) @5 65)0(A'
8/15/2019 Support de Cour Java
165/213
9je
E
i-+A),0-*5- =A *Kc$# #-?)5A> 5A *?*0(-5 5A 6(>)! +A15`
! #+) >-+A)*()5)
E
M*#/?*5A>5- /[(A>5-,+15 >%0/+(/V+B(%! 35 ,+(> -(5An #-?4(5A> /5 10*#(/+>5=-
E
S-0#0)5- =A5 45-)(0A @5 )?-(+/()+D0A! "1+F4 G6+( (86< "%0/+(.%0"/86WXY Z [[\]^
E
I"5AD0A u /+ #-0>51D0A @5) @0AA?5)! \0AA?5) 10+6"/%61 $ @0AA?5) A0A 10#(?5)
! B= (*#/?*5A>5- #$1%06+(/V+B(%
8/15/2019 Support de Cour Java
166/213
9jj
_ `
void writeObject(ObjectOutputStream out)throws IOException;
void readObject(ObjectInputStream in)throws IOException, ClassNotFoundException;
void readObjectNoData()throws ObjectStreamException;
FileOutputStream/FileInputStreamObjectOutputStream/ObjectInputStream
l/=Q _)>-5+*)` u =D/()5- d
O?>!0@5) u -5@?YA(- #0=- =A 10*#0->5*5A> #+-D1=/(5-
FileOutputStream fos = null;ObjectOutputStream oos = null;try {
fos = new FileOutputStream("fichier.dat");oos = new ObjectOutputStream(fos);
8/15/2019 Support de Cour Java
167/213
9jk
oos = new ObjectOutputStream(fos);oos.writeObject(objects);oos.flush();
} catch (IOException e) {e.printStackTrace();
} finally {if (oos!=null) oos.close();
if (fos!=null) fos.close();}
FileInputStream fis = null;
ObjectInputStream ois = null;try {
fis = new FileInputStream("fichier.dat");ois = new ObjectInputStream(fis);objects = (Composite) ois.readObject();
} catch (Exception e) {e.printStackTrace();
} finally {if (ois!=null) ois.close();if (fis!=null) fis.close();
}
L/+))5 @5 /[06C5>
8/15/2019 Support de Cour Java
168/213
9jf
E OWZA10@5- #0=- /5) 06C5>) -5)#51>+A> /5)10A45AD0A) 35>]5+A)
E
-5+* #0=- /5) +=>-5) |T`!
KA5 6(6/(0>!XU=5 D5-)
FileOutputStream fos = null;XStream xstream = null;try {
fos = new FileOutputStream(name);xstream = new XStream();
8/15/2019 Support de Cour Java
169/213
9jh
xstream = new XStream();xstream.toXML(objects, fos);
} catch (Exception e) {e.printStackTrace();
} finally {if (fos!=null) fos.close();
}
FileInputStream fis = null;XStream xstream = null;try {
fis = new FileInputStream(name);xstream = new XStream();
objects = (Composite)xstream.fromXML(fis));} catch (Exception e) {
e.printStackTrace();} finally {
if (fis!=null) fis.close();
}
L/+))5 @5 /[06C5>
iS …N0=•5!0=…
8/15/2019 Support de Cour Java
170/213
9k8
• O+A(#=/+D0A @5 1/+))5) 5> @[(A>5-,+15)•
L0A>5A5=-)• l(1!(5-) >5Q>5)• H+4+@01• Hi+6/5 @5
8/15/2019 Support de Cour Java
171/213
Constructeur() {a = null;
b = 1;}
Constructeur(int b) {a = null;this.b = b;
}
\=#/(1+D0A @5 10@5 sss
8/15/2019 Support de Cour Java
172/213
9k7
private void init(O a, int b) {
this.a = a;this.b = b;}
Constructeur() {
this(null, 1);}
Constructeur(int b) {this(null, b);
}
Constructeur() {init(null, 1);
}
Constructeur(int b) {init(null, b);
}
Constructeur(O a, int b) {this.a = a;this.b = b;
}
O?>!0@5 #-(4?5_-=1>5=-`
S+) @[+-G=*5A> #+- @?,+=>*+() =A5 )PA>+Q5 )P*#+
ment s
8/15/2019 Support de Cour Java
173/213
9kV
Éditions
C o m p l é m e n
JA VA –+ +=))(1[5)>
(*#0->+A>
S/+A
8/15/2019 Support de Cour Java
174/213
9k:
E S/=) @[5Q5*#/5) +451 HIJI! ZA=*?-+D0An
! IC0=>) en j 5> kn #+) 5A10-5 f
E
^?A?-(1(>? g 10//51D0A)E I##/5>
E
B=D/)
E I=>-5) @01=*5A>) $ H3Mn H\]Ln H+4+ ZZ
8/15/2019 Support de Cour Java
175/213
8/15/2019 Support de Cour Java
176/213
L0A45AD0A) _9`
8/15/2019 Support de Cour Java
177/213
9kk
E \01=*5A>+D0A 0q1(5//5
E i=>0-(+=Q u /[?1-(>=-5n ,+1(/(>? @5 /51>=-5
E
S-0@=1D0A -+#(@5
E
MA>?G-?5 @+A) /5) Z\M 1/+))(U=5)
!
l0-*+>+G5 +=>0*+DU=5 @+A) Z1/(#)5 _LiaWR(`
L0A45AD0A) _7`
8/15/2019 Support de Cour Java
178/213
9kf
E
30* @5 1/+))5 0= (A>5-,+15! S-5*(X-5 /5"-5 *+C=)1=/5
! a5)>5 5A *(A=)1=/5)
!
O+C=)1=/5) +=Q *0>) 10*#0)?)E
I"-(6=> ?1-(> 5A *(A=)1=/5! S+) @5 D-5>
E
O?>!0@5
!
J5-65 #0=- +1D0A! S-5*(5- *0> 5A *(A=)1=/5
! O+C=)1=/5) u /+ #-5*(X-5 /5"-5 @5) *0>) )=(4+A>)
classCoursGenial
int attribut;
void ronfler();
L0A45AD0A) _V`
8/15/2019 Support de Cour Java
179/213
9kh
E
I115))5=- % I115))0-! G5> R A0* @5 /[+"-(6=>
! () #0=- =A 600/?5A
E
O=>+>5=-%O=>+>0-! )5> R A0* @5 /[+"-(6=>
E
…L0A)>+A>5…! i0=> 5A *+C=)1=/5)
E
S+1p+G5! i0=> 5A *(A=)1=/5)
getAttribut()isAttribut()
CONSTANTE
fr.isima.paquetage
setAttribut()
FA=*?-+D0A b _9'e`
8/15/2019 Support de Cour Java
180/213
9f8
E S+) @5 4?-(Y1+D0A @5 >P#5
E Iq1!+G5 @5 /+ 4+/5=- )+A) (A>?-Œ>
public static final int LUNDI = 0; public static final int MARDI = 1; public static final int MERCREDI = 2;
public static final int JEUDI = 3;
FA=*?-+D0Ae
8/15/2019 Support de Cour Java
181/213
9f9!"#$%%@01)'0-+1/5'10*%C+4+)5%9'e'8%@01)%G=(@5%/+AG=+G5%5A=*)'!>*/
enum Semaine { LUNDI, MARDI, MERCREDI,JEUDI, VENDREDI, SAMEDI, DIMANCHE}
for (Semaine jour : Semaine.values()) System.out.println(jour);
for (Semaine j :EnumSet.range( Semaine.LUNDI,
Semaine.VENDREDI))System.out.println(j);
\+AG5-5=Q *+() =D/5 $ /5 )>+D1 (*#0->
ZA=* +*?/(0-?)e
8/15/2019 Support de Cour Java
182/213
9f7
enum Nom { VAL1(1), VAL2 (2); private int valeur; Nom(int i) { this.valeur = i };}
enum Nom { VAL1 { retour methode(params) {…}}, VAL2 { retour methode(params) {…}};
abstract retour methode(params);}
IAA0>+D0Ae
8/15/2019 Support de Cour Java
183/213
E
…ZQ>5A)(0A… @5 15//5) @= C+4+@01 >-0# -5)>-(1D45)E
O?>+ @0AA?5)
! \?45/0##5=-
! L0*#(/+>5=-
! O+1!(A5 4(->=5//5
! ^?A?-+D0A 10@5n @01=*5A>+D0An 10AYG=-+D0A
E S/=) )(*#/5 5> #/=) /?G5- U=5 /5 OW
E
KD/()+D0A (A>5A)(45! HKA(> :R
! H+4+ ZZ $ HSIn d
9fV
IAA0>+D0A) )>+A@+-@)
8/15/2019 Support de Cour Java
184/213
E
—B45--(@5E —5AD0A_a5>5AD0AS0/(1P'aK3iMOZ`
! ZQ?1=D0A
class Mere { public void methode() {
System.out.println("Methode de Mere");}
8/15/2019 Support de Cour Java
185/213
9fe
}
}
class Fille extends Mere {@Override
public void Methode() {System.out.println("Methode de Fille");
}}
Fille f = new Fille();f.methode();
i!5 *5>!0@ O5>!0@5_` 0, l(//5 *=)> 045--(@5 0- (*#/5*5A> +)=#5->P#5 *5>!0@
IAA0>+D0A) #5-)0AA+/()?5)
8/15/2019 Support de Cour Java
186/213
9fj
@interface ClassPreamble {String author();String date();int currentRevision() default 1;
String lastModified() default "N/A";String lastModifiedBy() default "N/A";String[] reviewers();// utilisation possible des tableaux
}
I//5- #/=) /0(A $!"#$%%@0&A/0+@'0-+1/5'10*%C+4+)5%>=>0-(+/%C+4+%C+4+BB%+AA0>+D0A)'!>*/!"#$%%&&&'C*@0=@0=Q',-%C+4+%@5C%1!+#898'!>*Š+AA0>+D0A)
O?>!0@5 u A0*6-5@[+-G=*5A>) 4+-(+6/5
e
8/15/2019 Support de Cour Java
187/213
@ +-G=*5A>) 4+-(+6/5
9fk
public void somme(double … nombres) {double s = 0.0;
// méthode classiquefor(int i=0; i < nombres.length; ++i)s += nombres[i];
// nouvelle forme de forfor (double nb: nombres) s+= nb;
}
I=>0 w=Ax ]0Q(AGe
8/15/2019 Support de Cour Java
188/213
E L0A45-)(0A) +=>0*+DU=5)
E I=>0]0Q(AG
! +"5AD0A u /+ 1-?+D0A (*#/(1(>5 @[06C5>)
E I=>0 =A60Q(AG
9ff
int n = nombre; // converti automatiquementint n = nombre.intValue();
Integer nombre = 10; // conversion automatiqueInteger nombre = new Integer(10);
8/15/2019 Support de Cour Java
189/213
^?A?-(1(>? g
L0//51D0A)
^?A?-(1(>?e
8/15/2019 Support de Cour Java
190/213
9h8
E
L/+))5) #+-+*?>-?5)E O?>!0@5) #+-+*?>-?5)E _/(74+07" _` %$1%67" 4(+""%M`
! ZA /51>=-5 _#+) 5A 1-?+D0A`
E
\?YA(D0A G?A?-(U=5! L0*#(/?5 =A5 ,0() #0=- >0=>5) _t LRR`n 5q1+1(>? b! S+->+G?5 #+- >0=>5) )5) (A401+D0A)
E
S+) @5 typedef!
#+-+*X>-5 $ =A5 /5"-5 5A *+C=)1=/5 _10A45AD0A`! F4(>5- @5 @?-(45- =A5 1/+))5 #0=- @0AA5- =A A0*
S/=) @5 -5A)5(GA5*5A>) $!"#$%%&&&'0-+1/5'10*%>51!A5>&0-p%C+4+%C+4+)5%G5A5-(1)T>=>0-(+/T9eh9jf'#@,
^?A?-(1(>? $ 5Q5*#/5
bli i t f Li t E {
e
8/15/2019 Support de Cour Java
191/213
9h9
public interface List {
void add(E e);Iterator iterator();
}
public interface Iterator {
E next(); boolean hasNext();}
public void dessiner(List l);
static void ajouter(T[] tab, Collection c) {for(T o :tab)c.add(o);
}
L0//51D0A) _9`
^? @ // D @ ( @[ Kc #
8/15/2019 Support de Cour Java
192/213
9h7
E ^?-5- @5) 10//51D0A) @PA+*(U=5) @[*Kc$#)!
L0A>5A5=-) "*" 6'"'%!83$ @[06C5>) @5 1/+))5 Object
! L0A>5A5=-) 6'"'%!83$)
! MA10*#+D6(/(>? @5 #/+>5,0-*5
E I/G0-(>!*5)
! i-(
! a51!5-1!5
! O+A(#=/+D0A
E S+U=5>+G5 java.util
Options –source et -target
!"#$%%@01)'0-+1/5'10*%C+4+)5%>=>0-(+/%10//51D0A)%(A@5Q'!>*/
e
e
L0//51D0A _7`
8/15/2019 Support de Cour Java
193/213
9hV
a/61%0L+4%b
L0//51D0Ai
a/61%0L+4%b
a/61%0L+4%b
W()>a/61%0L+4%b
‹=5=5i i i
a/61%0L+4%b
5@
i
a/61%0L+4%b
O+#}ni
a/61%0L+4%b
5@O+#}ni
a/&'(D&%61%b
a/&'(D&%61%b
a/&'(D&%61%b
$ #+) @5 @0=6/0A)‹=5=5 $ lMlB #+- 5QO+# $ >+6/5 @5 !+1!+G5
J51>0-
L0//51D0A) _V`
8/15/2019 Support de Cour Java
194/213
9h:
E I4+A> H+4+ 9'e!
L0A>5A5=-) @[Object! \0&A1+)> 06/(G+>0(-5
! Vector wJ51>5=- @PA+*(U=5x!
Enumeration w(>?-+>5=-x! Dictionary _N+)!>+6/5` wO+#x
E I#-X) 9'e!
OŒ*5) 10A>5A5=-) >5*#/+D)?)! KD/()5- ArrayList #/=>> U=5 Vector
)+=, *=/D>!-5+@! KD/()5- /+ Map #/=>> U=5 Dictionary
e
ZQ5*#/5 _A0A G?A?-(U=5`
8/15/2019 Support de Cour Java
195/213
9he
Vector v = new Vector();// on ne peut stocker que des objets, int est exclu
for (int i=0; i
8/15/2019 Support de Cour Java
196/213
9hj
Vector v = new Vector();// on ne peut toujours pas stocker de int
for (int i=0; i
8/15/2019 Support de Cour Java
197/213
8/15/2019 Support de Cour Java
198/213
I##/5>
8/15/2019 Support de Cour Java
199/213
L0@5 NiOW
8/15/2019 Support de Cour Java
200/213
788
E L0AD5A> =A5 6+/()5 @?1-(4+A> /[+##/5> u 5Q?1=>5-! \+A) =A Y1!(5- '1/+))
! \+A) =A Y1!(5- 'C+-
L0@5 HIJI
8/15/2019 Support de Cour Java
201/213
789
E
S5-*5> @5 -?1=#?-5- =A #+-+*X>-5 @= Y1!(5-NiOW
E
O?>!0@5) /(?5) u /+ 4(5 @5 /[+##/5>! init()
! destroy()
E
O?>!0@5) /(?5) u /[5Q?1=D0A @5 /[+##/5>!
start()! stop()
public String getParameter(String)
8/15/2019 Support de Cour Java
202/213
B=D/)
8/15/2019 Support de Cour Java
203/213
C+4+@01
8/15/2019 Support de Cour Java
204/213
78:
B=D/ 5Q>5-A5 #0=- G?A?-5- =A5 @01=*5A>+D0A += ,0-*+>NiOW _)(*(/+(-5 u /+ @01=*5A>+D0A 0q1(5//5 H+4+`
MA>?G-? += /+AG+G5n 10**+A@5 5A )>+A@+-@
l0-*+> …=A(45-)5/… 5> )(*#/5! L0**5A>+(-5) @+A) /5 10@5! I=>-5 0=D/ )(*(/+(-5 $ \0QPG5A
W()(6(/(>? @= 10@5
W5 10@5 @0(> 10*#(/5-35 ,+(> #+) >0=> s
/** */
C+4+@01 b
8/15/2019 Support de Cour Java
205/213
78e
E
L0**5A>+(-5) )#?1(+=QE S5-)0AA+/()+D0A +451 10@5 NiOW 0= L=-A! —>!-0&) —5Q15#D0A! —)55! —)(A15
!
—@5#-51+>5@! —+=>!0-
/** */
Z1/(#)5 $ _O` S-0C51> ’ ^5A5-+>5 H+4+@01
8/15/2019 Support de Cour Java
206/213
8/15/2019 Support de Cour Java
207/213
C+-
8/15/2019 Support de Cour Java
208/213
78f
E
H+4+ Ia1!(45! ZQ?1=>+6/5 _ ˜ >+-`
! l0-*+> @5 Y1!(5- 10*#-5))?
! L0A>-/5 @5 45-)(0A #+- 5Q5*#/5
E S5-*5> @5 @()>-(6=5-%@?#/0P5-! =A5 +##/(1+D0A _+=>0A0*5 0= +##/5>n HZZ`
! =A #+1p+G5
E
L0A>5A=! l(1!(5-) '1/+))
! l(1!(5-) -5))0=-15) _(*+G5)`
! l(1!(5- 3+6/L%"1
\?#/0P5- =A5 +##/(1+D0A HIJI
8/15/2019 Support de Cour Java
209/213
78h
E KD/()+D0A (A>5A)(45 @5 HIa
E ZQ?1=D0A #-0>?G?5 _)+A@60Q`E
8/15/2019 Support de Cour Java
210/213
8/15/2019 Support de Cour Java
211/213
](6/(0G-+#!(5 _7`
8/15/2019 Support de Cour Java
212/213
797
E
i!(Ap(AG (A H+4+n 7A@ 5@n ]-=15 Z1p5/
E N5+@ l(-)> H+4+n 7A@ 5@n }+>!P ]+>5) nB[a5(//Pn 788e
I//5- #/=) /0(Ad
8/15/2019 Support de Cour Java
213/213
E
H+4+ )>+A@+-@! MA>-0)#51D0A
! ^?A?-(U=5)
!
a?)5+=n aOM! i!-5+@) +4+A1?)
! H3WS
E B=D/)
E
H+4+ ZA>-5#-()5! ^/+))Y)!n >0*1+>
! )n C)#n 65+A)
!
S5-)()>+A15_HSIn N(65-A+>5`
! l+15/5>) _H)n
Recommended