68911725-coursJava

download 68911725-coursJava

of 68

Transcript of 68911725-coursJava

  • 7/31/2019 68911725-coursJava

    1/68

    26/04/2012 23:17:53 1

    Initiation au langage Java

  • 7/31/2019 68911725-coursJava

    2/68

    26/04/2012 23:17:53 2

    Le langage Java

    Langage de programmation

    Dvelopp par SUN microsystems en 1995

    Initialement orient web

    Syntaxe proche du langage C

    Cest un langage interprt et compil

    Cest un langage orient-objet

  • 7/31/2019 68911725-coursJava

    3/68

    26/04/2012 23:17:53 3

    Rappel sur ProgrammationOriente Objet (POO)

  • 7/31/2019 68911725-coursJava

    4/68

    26/04/2012 23:17:53 4

    Programmation oriente-objet

    Cest avant tout une dmarche deconception de programme qui sefocalise sur les objets dvelopper

    plutt que sur les traitements.

    1. Identifier les objets du programme

    2. Identifier les donnes ncessaires chaque objet (Attributs)3. Identifier des mthodes de traitement de chaque objet

    4. Dvelopper des classesdobjets

  • 7/31/2019 68911725-coursJava

    5/68

    26/04/2012 23:17:53 5

    Exemple: gestion dune bibliothque

    Avec une programmation procdurale (ex:C), on cherchera crire des fonctions pour :

    Rechercher un livre daprs son titre, son auteur,

    Enregistrer le prt dun livre Enregistrer le retour dun livre

    Identifier les lecteurs en retard

    Crer un nouveau lecteur

    Enregistrer un nouveau livre Afficher la liste des livres emprunts par un lecteur

  • 7/31/2019 68911725-coursJava

    6/68

    26/04/2012 23:17:53 6

    Exemple: gestion dune bibliothque

    Avec un langage de programmation orient-objet, on dfinit le contenu des classesdobjets manipuls :

    La classe Livre qui a un titre, un auteur, un emprunteur et desmthodes empruntPar(Lecteur l), rendu(), estEnRetard(), La classe Lecteur qui a un nom, une adresse, une listedelivres

    emprunts et des mthodes emprunte(Livre l), retourne(Livre

    l), Dautres classes telles que DVD, StatutLecteur, Bibliothque,CatgorieLivre, Employ,

  • 7/31/2019 68911725-coursJava

    7/68

    26/04/2012 23:17:53 7

    Classe

    Une classe est un type complexe de donnes.On dclare des variables dont le type est uneclasse comme pour les types primitifs:

    int monEntier; Livre monLivre;

    Cest au concepteur de la classe dcrire toutesles oprations qui lui sont applicables

    En Java, un programme est uniquementconstitue de classes.

  • 7/31/2019 68911725-coursJava

    8/68

    26/04/2012 23:17:53 8

    Exemple: la classe Livre

    class Livre {String titre;int numero;Lecteur emprunteur;

    String getTitre() {return titre;}

    boolean estEmprunte() {

    if (emprunteur == null)return false;else return true;

    }}

    Donnes

    Mthodes

  • 7/31/2019 68911725-coursJava

    9/68

    26/04/2012 23:17:53 9

    Droits d'accs

    Une variable ou une mthode a un type d'accs qui la rendaccessible ou non en fonction de la classe o elle est appele.

    public, ex: publicStringgetTitre() {}

    La mthode est accessible par toutes les classes.

    private, ex: privateStringtitre;

    La variable n'est accessible que dans sa classe.

    protected, ex: protectedStringnomCategorie;

  • 7/31/2019 68911725-coursJava

    10/68

    26/04/2012 23:17:53 10

    Exemple: droits d'accs

    public class Livre {private String titre;private int numero;Lecteur emprunteur;

    public String getTitre() {return titre;

    }

    public boolean estEmprunte() {if (emprunteur == null)

    return false;else return true;

    }

    }

    public class MauvaisExemple {

    public String getDescription(Livre l) {

    String str = l.titre;

    if (l.estEmprunte())str = str + " emprunte";

    else

    str = str + "libre;

    return str;

    }

    }

    public class BonExemple {

    public String getDescription(Livre l){

    String str = l.getTitre();if (l.estEmprunte())

    str = str + "emprunte";

    else

    str = str + " libre";

    return str;

    }

    }

  • 7/31/2019 68911725-coursJava

    11/68

    26/04/2012 23:17:53 11

    Objet

    Un objet est une instancedune classe:Livre monLivre = new Livre();

    Lobjet monLivre a toutes les propritsde sa classe. Par exemple :monLivre.titre

    monLivre.estEmprunte()

  • 7/31/2019 68911725-coursJava

    12/68

    26/04/2012 23:17:53 12

    Constructeur

    Linstanciation dune classe en un objet fait appel une mthode constructeur qui effectue des

    oprations dinitialisation.

    Un constructeur a le mme nom que sa classe; Un constructeur na pas de valeur de retour;

    Il peut exister plusieursconstructeurs (avec des paramtres

    dentre diffrents);

    Il faut au moins un constructeur dans une classe pour pouvoir

    instancier des objets.

  • 7/31/2019 68911725-coursJava

    13/68

    26/04/2012 23:17:53 13

    Constructeur Livre

    class Livre {Livre() {

    titre = null;emprunteur = null;

    numero = 0;}

    Livre(String t, int n) {titre = t;numero = n;

    emprunteur = null;}

    }

    Livre monLivre;

    monLivre = new Livre();

    Livre unLivre;

    unLivre = new Livre("Java",123);

  • 7/31/2019 68911725-coursJava

    14/68

    26/04/2012 23:17:53 14

    Mthode main

    Une classe excutable dispose d'une mthode:

    public static void main(String[ ] args)

    La mthode main est la premire excute au dbut du programme

    public class Enregistrement {public static void main(String[ ] args) {

    Lecteur l = new Lecteur("Youssef");

    l.inscrit();}}

  • 7/31/2019 68911725-coursJava

    15/68

    26/04/2012 23:17:53 15

    Syntaxe du langage

  • 7/31/2019 68911725-coursJava

    16/68

    26/04/2012 23:17:53 16

    Types primitifs

    Mme typesqu'en C:

    int

    float double short long char void

    Plus deux nouveaux types : boolean

    byte

    Plus la classe : String

    Dclaration :

    int monEntier; String chaine;

    boolean test;

  • 7/31/2019 68911725-coursJava

    17/68

  • 7/31/2019 68911725-coursJava

    18/68

    26/04/2012 23:17:53 18

    Structures de contrle

    Instruction itrative

    while {bloc}

    Exemple :

    while ( i < biblio.nbLivres() ) {Livre l = biblio.getLivre(i);l.setDisponible(true);i++;

    }

  • 7/31/2019 68911725-coursJava

    19/68

    26/04/2012 23:17:53 19

    Structures de contrle

    Instruction itrative

    for (; ; ) {bloc}

    Exemple :

    for (int i = 0; i < biblio.nbLivres(); i++ ) {Livre l = biblio.getLivre(i);

    l.setDisponible(true);}

  • 7/31/2019 68911725-coursJava

    20/68

    26/04/2012 23:17:53 20

    Structures de contrle

    Instruction de choix multiple

    switch () {case : case : default:

    }

    Exemple :

    switch (l.getCategorie()) {case 1: l.setDuree(15);

    break;case 2: l.setDuree(20);

    break;default: l.setDuree(30);}

  • 7/31/2019 68911725-coursJava

    21/68

    26/04/2012 23:17:53 21

    Environnement Java

  • 7/31/2019 68911725-coursJava

    22/68

    26/04/2012 23:17:53 22

    Packages

    Un package regroupe des classes et des sous-packages sous un thme prcis. Exemple :

    Le packagejava contient des classes de base dulangage.

    Le packagejava.net contient des classe pour laprogrammation rseau.

    Pour crer un package, vous devez prciser son nom au dbutd'une classe.

    package bibliotheque;

    public class Livre {}

  • 7/31/2019 68911725-coursJava

    23/68

    26/04/2012 23:17:53 23

    Recommandations de dveloppement

    Le code source d'une classe doit tre enregistrdans un fichier de mme nom que la classe. Ex:

    Livre.java

    Toutes les classes d'un package doivent tre dansun rpertoire de mme nom que le package. Ex:

    C:\MesProgs\src\exemples\bibliotheque\Livre.java

    En gnral, chaque nom de classe commence parune majuscule.

  • 7/31/2019 68911725-coursJava

    24/68

    26/04/2012 23:17:53 24

    Import

    Pour utiliser une classe d'un autrepackage, il faut l'importer.

    package exemples.bibliotheque;

    import java.util.*;/* import java.util.Vector; marche aussi */

    Public class Livre {

    Vector liste;

    }

  • 7/31/2019 68911725-coursJava

    25/68

    26/04/2012 23:17:53 25

    Langage interprt ?

    Compilateur

    Interprteur

    Systme d'exploitation

    Code source

    Bytecode

    Code machine

  • 7/31/2019 68911725-coursJava

    26/68

    26/04/2012 23:17:53 26

    Compilation

    Le code source est compil par l'instructionjavacjavac Livre.java

    Deux options sont ncessaires pour Enregistrer le bytecode dans autre un rpertoire

    javac d Compiler si des classes d'autres packages sont utilises

    javac classpath

    Exemple :

    javac d C:\MesProgs\classes -classpath C:\MesProgs\src Livre.java

  • 7/31/2019 68911725-coursJava

    27/68

    26/04/2012 23:17:53 27

    Excution

    Une classe excutable se lance avec l'instructionjava suivie deson nom complet (avec son package).

    java exemples.bibliotheque.Livre

    Une options est ncessaire si des classes d'autres packages sontutilises:

    java classpath

    Exemple :java -classpath C:\MesProgs\classes exemples.bibliotheque.Livre

  • 7/31/2019 68911725-coursJava

    28/68

    26/04/2012 23:17:53 28

    Documentation

    Une documentation HTML peut tre gnre pour dcrire despackages par l'instructionjavadoc

    l'optiond existe aussi pour spcifier un rpertoire dedestination

    javadoc d C:\MesProgs\doc exemples

    Les fichiers sources doivent tre correctement comments pourcrer une vritable documentation.

  • 7/31/2019 68911725-coursJava

    29/68

    26/04/2012 23:17:53 29

    Tags de documentation

    @author pour afficher les noms desauteurs de la classe

    @param pour dcrire les paramtres

    d'entre d'une mthode @return pour dcrire la valeur de retour

    d'une mthode

    @see pour crer un lien vers d'autresclasses

  • 7/31/2019 68911725-coursJava

    30/68

    26/04/2012 23:17:53 30

    Application Programming Interface(API)

  • 7/31/2019 68911725-coursJava

    31/68

    26/04/2012 23:17:53 31

    Application Programming Interface

    L'API (Application Programming Interface) dsigne unensemble de classes gnriques utilisables par un dveloppeurJava.

    L'API du SDK 1.4 a t tendue de manire incrmentaledepuis la version 1.02 du JDK.

    Le code source des classes est disponible.

  • 7/31/2019 68911725-coursJava

    32/68

    26/04/2012 23:17:53 32

    Packages java, javax et org

    L'API du SDK 1.4 est dcoupe en packages qui regroupentles classes par thme.

    Au plus haut niveau :

    le package java contient des classes couramment utilises

    le package javax contient des extensions plus spcialises

    le package org contient des extensions proposes par

    d'autres organisations (comme l'Object Management Group)

  • 7/31/2019 68911725-coursJava

    33/68

    26/04/2012 23:17:53 33

    Quelques packages

    java.lang : classes de base du langage

    java.util : classes utilitaires

    java.io : classes de gestion des entres/sorties

    java.net : classes pour la programmation

    rseau

    java.awt : classes graphiques javax.swing : autres classes graphiques

  • 7/31/2019 68911725-coursJava

    34/68

    26/04/2012 23:17:53 34

    Classe java.lang.String

    Reprsente une chane de caractres Constructeurs:

    String s = new String();

    String s = new String("hello"); Quelques mthodes:

    int length();

    char charAt(int pos);

    boolean equals(Object o); int indexOf(char c);

    String substring(int debut, int fin);

  • 7/31/2019 68911725-coursJava

    35/68

    26/04/2012 23:17:53 35

    Classe java.util.Vector

    Reprsente un ensemble ordonn d'lments Constructeur :

    Vector v = new Vector();

    Quelques mthodes:

    int size();

    boolean isEmpty();

    boolean contains(Object o);

    Object elementAt(int pos); void setElementAt(Object o, int pos);

    void addElement(Object o);

  • 7/31/2019 68911725-coursJava

    36/68

    26/04/2012 23:17:53 36

    Classe java.lang.Math

    Pas de constructeur

    Uniquement des mthodes et variables static:

    Math.PI, Math.E

    double cos(double a); double sqrt(double a);

    double pow(double a, double b);

    int round(float a);

    int max(int a, int b);

  • 7/31/2019 68911725-coursJava

    37/68

    26/04/2012 23:17:53 37

    Attributs d'instance ou de classe

    Une variable ou mthode appartient uneinstance sauf si elle est static auquel cas elleappartient la classe.

    Attribut d'instance

    public String getTitre() s'appelle sur un objet

    Livre monLivre = newLivre();

    monLivre.getTitre();Livre.getTitre();

    Attribut de classe

    Class Integer {static int MAX_VALUE}s'appelle sur une classe

    int val = Integer.MAX_VALUE;

  • 7/31/2019 68911725-coursJava

    38/68

    26/04/2012 23:17:53 38

    La relation d'hritage

  • 7/31/2019 68911725-coursJava

    39/68

    26/04/2012 23:17:53 39

    Introduction

    Premier niveau d'abstraction : Distinction entre instance et classe

    La proprit d'hritage permet de gnraliser plusieurs classespour manipuler des entits un plus haut niveau d'abstraction.Par exemple, des classes Voiture, Camion, Moto peuvent tregnralises en une classe Vhicule.

    Avantages : Effectuer un mme traitement sur des objets de classesdiffrentes;

    viter la redondance de structure.

  • 7/31/2019 68911725-coursJava

    40/68

    26/04/2012 23:17:53 40

    Introduction

    String nom;String prenom;String adresse;Statut statut;Livre[] emprunts;

    Lecteur

    String nom;String prenom;String adresse;

    Employ

    String nom;String prenom;String adresse;

    String nom;String prenom;String adresse;

    Concrtement, l'hritage consiste factoriser des attributscommuns plusieurs classes.

  • 7/31/2019 68911725-coursJava

    41/68

    26/04/2012 23:17:53 41

    Introduction

    String nom;String prenom;String adresse;

    Personne

    Statut statut;

    Livre[] emprunts;

    Lecteur Employ

    Les classes Lecteur et Employ hritent de la classe Personne

  • 7/31/2019 68911725-coursJava

    42/68

    26/04/2012 23:17:53 42

    Hritage des donnes

    double solde;Client proprietaire;

    Compte

    double txInteret;CompteEpargne

    Si la classe CompteEpargne hrite de laclasse Compte, les donnes de Compteseront encapsules dans CompteEpargne.

    Les instances de Compte ont les donnes : solde propritaire

    Les instances de CompteEpargne ont lesdonnes : solde propritaire txInteret

  • 7/31/2019 68911725-coursJava

    43/68

    26/04/2012 23:17:53 43

    Hritage des mthodes

    double solde;Client proprietaire;void passer(Ordre)

    double consulter()

    Compte

    double txInteret;double ajoutInteret()

    CompteEpargne

    Les mthodes de la classe Compte sontencapsules dans la classe CompteEpargne.

    Les instances de Compte peuvent invoquer

    les mthodes : void passer(Ordre) double consulter()

    Les instances de CompteEpargne peuventinvoquer les mthodes : void passer(Ordre) double consulter() double ajoutInteret()

  • 7/31/2019 68911725-coursJava

    44/68

    26/04/2012 23:17:53 44

    Hritage des mthodes

    public class Compte {public void passer(Ordre o) {

    if (o.debiteur = = this) {solde = soldeo.montant;

    } else { solde = solde + o.montant;}

    }

    }Problme: si la classe CompteEpargne doit calculer des intrtstemporaires aprs chaque Ordre, la mthode passer(Ordre) deCompte n'est pas valide.

    Heritage impossible ? Modification de Compte ?

  • 7/31/2019 68911725-coursJava

    45/68

    26/04/2012 23:17:53 45

    Surcharge de mthodes

    La surcharge est la pratique consistant criredans une classe B, hritant d'une classe A, une

    mthode qui existe dans la classe A.double solde;Client proprietaire;void passer(Ordre)

    double consulter()

    Compte

    double txInteret;double ajoutInteret()

    CompteEpargne

    Pour qu'une mthode de B surcharge une mthode de

    A, il faut que leurs signatures soient exactementidentiques (nom, type des paramtres d'entre, typede retour).

    Les instances de CompteEpargne peuvent invoquer lesmthodes :

    consulter() de la classe Compte ajoutInteret() et passer(Ordre) de la classe

    CompteEpargnevoid passer(Ordre)

  • 7/31/2019 68911725-coursJava

    46/68

    26/04/2012 23:17:53 46

    Exemple de surcharge

    public class CompteEpargne extends Compte {

    public CompteEpargne(float sol, Client prop) {

    super(sol,prop);}

    }

    public void passer(Ordre o) {

    int periode = calculerPeriode();

    float interets = (solde * txInteret) * (periode/365);interetsTemporaires = interetsTemporaires + interets;

    super.passer(o);

    }

  • 7/31/2019 68911725-coursJava

    47/68

    26/04/2012 23:17:53 47

    Polymorphisme

    Exemple : Tous les objets instances de la classe Compte ou d'une sous-classe de Compte ont une mthode passer(Ordre).

    L'appel la mthode passer(Ordre) effectue un traitementdpendant de la classe de l'objet par lequel elle est invoque.

    Le polymorphisme est la facult d'effectuer un traitementdiffrent pour l'appel d'un mme symbole. Le traitement dpend du receveur

    Il n'est parfois pas important de connatre la nature prcise dutraitement.

  • 7/31/2019 68911725-coursJava

    48/68

    26/04/2012 23:17:53 48

    Polymorphisme

    public void passerListe(Ordre[ ] o) {for (int i = 0; i < o.length; i++) {

    Compte deb = o.debiteur;

    Compte cre = o.crediteur;

    deb.passer(o);

    cre.passer(o);

    }

    }

    Les comptes dbiteur et crditeur d'un objet Ordre peuvent tredes objets de la classe Compte ou d'une sous-classe de Compte(CompteEpargne, CompteCheque, )

  • 7/31/2019 68911725-coursJava

    49/68

    26/04/2012 23:17:53 49

    L'hritage est transitif

    double solde;Client proprietaire;void passer(Ordre)

    Compte

    double txInteret;double ajoutInteret()void passer(Ordre)

    CompteEpargne

    Date duree;void passer(Ordre)

    CompteEpargneBloque

    La classe Compte encapsule :solde, propritairepasser(Ordre) [de Compte]

    La classe CompteChque encapsule :solde, propritairepasser(Ordre) [de Compte]retirer(double)

    La classe CompteEpargne encapsule : solde, propritaire, txInteret passer(Ordre) [de CompteEpargne] double ajoutInteret()

    La classe CompteEpargneBloqueencapsule :

    solde, proprietaire, txInteret,duree

    void passer(Ordre) [deCompteEpargneBloque]

    double ajoutInteret()

    retirer(double)

    CompteCheque

  • 7/31/2019 68911725-coursJava

    50/68

    26/04/2012 23:17:53 50

    Interfaces & classes abstraites

  • 7/31/2019 68911725-coursJava

    51/68

    26/04/2012 23:17:53 51

    Hritage multiple

    Certains langages de programmation orient-objet autorisent uneclasse hriter de plusieurs classes.

    Rectangle

    String description() {return "4 angles droit";}

    Losange

    String description() {return "4 cts gaux";}

    CarreSi description() n'est pas surcharge quelle mthode doit tre appele pour lesobjets de la classe Carr ?

  • 7/31/2019 68911725-coursJava

    52/68

    26/04/2012 23:17:53 52

    Hritage multiple

    Les langages OO proposent des solutions diverses ce problme : Tout conflit provoque une erreur de compilation (AGL,

    certains compilateurs C++);Une priorit d'hritage est dfinie

    La rsolution des conflits est alatoire (certains compilateursC++).

    Le problme de l'hritage multiple concerne les traitements et nonles signatures de mthode. Le langage Java :

    interdit l'hritage multiple; propose d'utiliser des interfaces pour simuler l'hritage

    multiple.

  • 7/31/2019 68911725-coursJava

    53/68

    26/04/2012 23:17:53 53

    Interfaces

    Une interface dfinit les mthodes que certaines classesdoivent obligatoirement implmenter.

    Une interface :ne contient aucune donne;contient des signatures de mthodes;n'associe aucune implmentation ses mthodes.

    Si une classe implmente une interface, elle doit contenir lesmthodes dcrites dans l'interface en y associant un traitement.une classe peut implmenter plusieurs interfaces;une interface ne peut pas tre instancie;une interface peut hriter d'une autre interface.

  • 7/31/2019 68911725-coursJava

    54/68

  • 7/31/2019 68911725-coursJava

    55/68

    26/04/2012 23:17:53 55

    Exemple d'interface

    PersonneString nom;String adresse;

    Employdouble salaire;double getSalaire() {}

    ClientExterneCompte compte;Compte getCompte() {}

    ClientInterneCompte compte;Compte getCompte() {}

    Client

    Compte renvoieCompte();

  • 7/31/2019 68911725-coursJava

    56/68

    26/04/2012 23:17:53 56

    Exemple d'interface

    public interface Client {

    public Compte renvoieCompte();

    }

    public class ClientExterne extends Personne implements Client {

    private Compte compte;

    public Compte renvoieCompte() {

    return compte;

    }}

  • 7/31/2019 68911725-coursJava

    57/68

    26/04/2012 23:17:53 57

    Niveaux d'abstraction des objets

    Classe abstraite

    DonnesPas de donnes

    Pas de mthodes

    Traitements des mthodes

    Signatures des mthodes

    Classe Interface Classe

    Classe Classe

    Interface

    ?

    Classe abstraite

    Classe abstraiteClasse abstraite

    Classe abstraite

    Classe abstraite

  • 7/31/2019 68911725-coursJava

    58/68

    26/04/2012 23:17:53 58

    Classes abstraites

    Une classe abstraite est une classe dont certaines mthodes nesont pas implmentes.

    Une classe abstraite ne peut pas tre instancie; Une classe abstraite peut hriter d'une classe (abstraite ou

    non) Une classe abstraite implmenter plusieurs interfaces (sans

    tre oblige d'implmenter leurs mthodes) Une classe peut hriter d'une seule classe (abstraite ou non)

    Si une classe hrite d'une classe abstraite, elle doitimplmenter toutes ses mthodes abstraites (sans traitement)ou tre elle aussi abstraite.

  • 7/31/2019 68911725-coursJava

    59/68

    26/04/2012 23:17:53 59

    Exemple de classe abstraite

    ClientInterne

    Compte compte;

    Compte getCompte() {}verserSalaire() {

    compte.credite(salaire);}

    Employe

    verserSalaire() {

    envoyerCheque(salaire);}

    Salarie

    double salaire;

    double getSalaire() {

    return salaire;

    }

    verserSalaire();

  • 7/31/2019 68911725-coursJava

    60/68

    26/04/2012 23:17:53 60

    Exemple de classe abstraite

    public abstract class Salarie {protected float salaire;

    public float renvoieSalaire {return salaire;

    }

    public abstract void verserSalaire();}

    public class ClientInterne extends Salarie {Compte compte;

    public void verserSalaire() {compte.credite(salaire);

    }}

  • 7/31/2019 68911725-coursJava

    61/68

  • 7/31/2019 68911725-coursJava

    62/68

    26/04/2012 23:17:53 62

    Notion d'exception

    En Java, les erreurs se produisent lors d'uneexcution sous la forme d'exceptions.

    Une exception :

    est un objet, instance d'une classe d'exception provoque la sortie d'une mthode

    correspond un type d'erreur

    contient des informations sur cette erreur

  • 7/31/2019 68911725-coursJava

    63/68

    26/04/2012 23:17:53 63

    Classes d'exceptions

    Une classe d'exception hrite de java.lang.Throwable.

    Elle correspond un type d'erreur et encapsule des informationsrelatives l'erreur qui s'est produit.

    La mthode public String getMessage() renvoie une chane decaractres dcrivant l'exception.

    IndexOutOfBoundsException

    NullPointerException

    NumberFormatException

    ClassCastException

  • 7/31/2019 68911725-coursJava

    64/68

    26/04/2012 23:17:53 64

    Dclaration des exceptions possibles

    Chaque mthode doit dclarer dans sa signature lesexceptions qu'elle peut mettre.La liste des exceptions possible est indique la fin de

    la signature par throws suivi des classes d'exceptionsconcernes.

    public static int parseInt(String s) throws NumberFormatException

    {

    }

  • 7/31/2019 68911725-coursJava

    65/68

    26/04/2012 23:17:53 65

    mission et cration d'exceptions

    Lorsqu'une erreur est dtecte dans une mthode, il faut :1. Crer un objet d'une classe d'exception2. mettre l'exception

    int getValue(int pos) throws IndexOutOfBoundsException {

    if (pos > tab.length)

    throw new IndexOutOfBoundsException("trop grand");

    else return tab[pos];}

  • 7/31/2019 68911725-coursJava

    66/68

    26/04/2012 23:17:53 66

    Traitement des exceptions

    Si une mthode peut mettre une exception (ou appelle

    une autre mthode qui peut en mettre une) il faut :

    soit propager l'exception (la mthode doit l'avoir

    dclare);

    soit intercepter et traiter l'exception.

  • 7/31/2019 68911725-coursJava

    67/68

    26/04/2012 23:17:53 67

    Propagation d'exceptions

    public int ajouter(int a, String str) throws NumberFormatException

    int b = Integer.parseInt(str);

    a = a + b;

    return a;

    }

  • 7/31/2019 68911725-coursJava

    68/68

    Interception d'exceptions

    public int ajouter(int a, String str) {

    try {

    int b = Integer.parseInt(str);

    a = a + b;} catch (NumberFormatException e) {

    System.out.println(e.getMessage());

    }

    return a;}