Support de Cour Java

download Support de Cour Java

of 213

Transcript of Support de Cour Java

  • 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

    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>

    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+

    L0A15#D0A @5 ^KMA+D45 _*+D))5`

    E  M]O

    E  a?#=>+D0A #/=) #-0 b

    S/=G(A $ @?/+( bMA10*#+D6(/(>? b

    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

    W+AG+G5E  O+1!(A5 4(->=5//5

    E  S/+>5,0-*5

    E  o/5 b

    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

  • 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

    a5)#51>5- /+ 1+))5 ZQ5*#/5

    E  9 1/+))5 #=6/(U=5 #+- Y1!(5-

    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`

    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

    S)5=@0T10@5 !"#$%&%'#' #+- /+ HJO -+!+ ./012+( 3+45/6%

    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

    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)%+#(%

    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/

    wLRRx 5)#+15 @5 A0**+G5

    E  #+- @?,+=> _C+4+'/+AG`

    +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)

    10**5 /5) -?#5->0(-5)

  • 8/15/2019 Support de Cour Java

    18/2139f

    L/+=)5 (*#0->

    5 @y=A5 1/+))5 @y=A #+1p+G5U=( Ay5)> #+) 1!+-G? #+- @?,+=>

    l+1(/(>? $ 1/+=)5 (*#0->

    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

    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)

    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;]}

    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`

    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+=

    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

    /9".:!83$  StringBufferStringBuilder

    KilT9j

    ](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

    B6/(G+>0(-5 5A *0@5 "1+67+(86%

    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=>)

    O5))+G5) % O?>!0@5)E  30* =A(U=5 _#+1p+G5`

    E  \5 1/+))5 %@y(A)>+A15

    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=-

    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=-)

    -=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

    I##5/5- /5 10A)>-=1>5=-

    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

    ‹=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-_`

    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

    #+) @+A) /5 -?#5->0(-5 10=-+A>

    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)*()

    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

    >!() $ 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

    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

    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

    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

    !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`

    \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

    MA>5-,+15 _7`

  • 8/15/2019 Support de Cour Java

    83/213

    MA>5-,+15 _7`

    wJ01+6=/+(-5 x MOSWZOZ3iZa =A5 (A>5-,+15

    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`

    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

    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)

    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)

    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)

    KA5 5--5=- r =A5 (A)>+A15 @[5Q15#D0A

    E  S+-D5 (A>?G-+A>5 @5 /+ )(GA+>=-5 @[=A5 *?>!0@5

    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:$ #%.!#$:$"#

  • 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

    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

  • 8/15/2019 Support de Cour Java

    104/213

    98:

    ZQ15#D0A #5-)0AA+/()?5

    E  ZQ15#D0A @?-(45 @5 Throwable!  Error

    !  Exception

    \?-(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

    L0A>5A5=-)!

     

    JPaneln JScrollPanen JToolBarE  L0*#0)+A>) 6+)(U=5)

    !  JMenun JButtonn JLabel

    \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

    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()

    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+&%

    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>)

    ‹=( #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>

    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

    ]0-@5-

    E  ^-(@

    E  L+-@

    E  ^-(@]+G

    $• 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

    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`

    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))=)

    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>

    ^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

    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-

    L+A4+) wIcix!  L0*#0)+A> …/0=-@…

    !  void paint(Graphics g) 

    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

    l(Q5- /+ >+(//5 @= 10*#0)+A>!  PreferredSize _=D/()?5 #+- pack()`

    !  MinimumSizen MaximumSize

    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  

    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`

    !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-

    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> )

    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`

    O5A= $ a+,-+(1!(- 5> U=("5-E

     

    …‹=("5-b… #+- /5 *5A= 5> /+ 1-0(Q

    E  ]/01+G5 @5 /[(A>5-,+15 b

    ^?-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`

    ]=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)

    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`

     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

    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

  • 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

    i-+A),0-*5- =A *Kc$# #-?)5A> 5A *?*0(-5 5A 6(>)!  +A15`

    !  #+) >-+A)*()5)

    M*#/?*5A>5- /[(A>5-,+15 >%0/+(/V+B(%!  35 ,+(> -(5An #-?4(5A> /5 10*#(/+>5=-

    S-0#0)5- =A5 45-)(0A @5 )?-(+/()+D0A!  "1+F4 G6+( (86< "%0/+(.%0"/86WXY Z [[\]^

    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)

    -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

    ^?A?-(1(>? g 10//51D0A)E  I##/5>

    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

    S-0@=1D0A -+#(@5

    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

    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>

    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

    I115))5=- % I115))0-!  G5> R A0* @5 /[+"-(6=>

    !  () #0=- =A 600/?5A

    O=>+>5=-%O=>+>0-!  )5> R A0* @5 /[+"-(6=>

    …L0A)>+A>5…!  i0=> 5A *+C=)1=/5)

    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

    …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

    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

    —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

  • 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

    L/+))5) #+-+*?>-?5)E  O?>!0@5) #+-+*?>-?5)E  _/(74+07" _` %$1%67" 4(+""%M`

    !  ZA /51>=-5 _#+) 5A 1-?+D0A`

    \?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)

    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 {

  • 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'!>*/

    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

    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

    S5-*5> @5 -?1=#?-5- =A #+-+*X>-5 @= Y1!(5-NiOW

    O?>!0@5) /(?5) u /+ 4(5 @5 /[+##/5>!  init()

    !  destroy()

    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

    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

    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

    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

    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

    H+4+ )>+A@+-@!  MA>-0)#51D0A

    !  ^?A?-(U=5)

    !

     

    a?)5+=n aOM!  i!-5+@) +4+A1?)

    !  H3WS

    E B=D/)

    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