Cours Java 2004 - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Cours Java 2004

Description:

Le seigneur des anneaux. J.R.R.Tolkien. Germinal. E. Zola. Le Monde. Alice Dupont. Directrice ... Le seigneur des anneaux. J.R.R.Tolkien. Germinal. E. Zola. Le Monde. Alice ... – PowerPoint PPT presentation

Number of Views:99
Avg rating:3.0/5.0
Slides: 34
Provided by: laurentv5
Category:
Tags: anneaux | cours | java | objets

less

Transcript and Presenter's Notes

Title: Cours Java 2004


1
Pôle Informatique 2008/2009
École Nationale Supérieure des Mines de
Saint-Étienne
Langage et Concepts de Programmation
Orientée-Objet
Gauthier Picard gauthier.picard_at_emse.fr
2
Déroulement du cours
7 janvier
COURS
TD
8 janvier
TP
TP
15 janvier
TP
TD
21 janvier
TD
TP
28 janvier
TD
TP
29 janvier
Projet
Projet
6 février
Projet
Projet
7 février
Projet
EXAMEN
  • TP à envoyer à la fin des séances
  • Évaluation sur un de ces TP, le projet et
    l'examen écrit
  • note 0,4examen 0,3projet 0,2TP

3
Modèle en cascade pour le développement logiciel
Analyse
SADT, SA-RT, MERISE, OMT, UML,
Conception
Fortran, Cobol, C, SmallTalk, Ada, C, Java,
Implémentation
Tests
Maintenance
4
Langages procéduraux et fonctionnels
  • Un programme est composé de plusieurs procédures
    (ou fonctions)
  • qui effectuent un traitement sur des données
    (procédure)
  • qui retournent une valeur après leur invocation
    (fonction)
  • Certains langages ne distinguent pas procédures
    et fonctions.
  • Exemples de langages procéduraux ou fonctionnels
    Fortran, Lisp, C,

5
Langages Orientés-Objet
  • Un programme est composé de plusieurs objets qui
    contiennent
  • des données "internes"
  • des traitements manipulant ces données internes
    ou d'autres données
  • Les données d'un objet sont appelés ses attributs
    et ses traitements sont ses méthodes (ou
    opérations).
  • Exemples de langages orientés-objet SmallTalk,
    C, Java,

D
T
D
D
T
T
D
D
T
T
6
UML Java
  • Unified Modeling Language (UML)
  • notation standard pour l'analyse et la conception
  • construite par l'Object Management Group
  • Première version standard en 1997
  • Java
  • pas un standard mais un langage très largement
    utilisé
  • développé par SUN microsystems en 1995
  • dernière version stable JDK 1.5.0

Analyse
Conception
Implémentation
Tests
Maintenance
7
Objet
8
Classe
  • Des objets similaires peuvent être
    informatiquement décrits par une même abstraction
    une classe
  • même structure de données et méthodes de
    traitement
  • valeurs différentes pour chaque objet

9
Contenu d'une classe
  • Une classe est composée de plusieurs membres dont
    chacun est soit
  • un attribut variable typée
  • une méthode (ou opération) ensemble
    d'instructions de traitement

class CompteBancaire String proprietaire doub
le solde double getSolde() return
solde void credite(double val) solde
solde val
10
Encapsulation
L'encapsulation est la pratique consistant à
regrouper des attributs au sein d'une même
classe. Exemple la classe Livre encapsule les
attributs titre et emprunteur
  • Pour améliorer la lisibilité des programmes, les
    attributs encapsulés sont souvent privés
    (inaccessibles aux autres classes).
  • Les données et méthodes accessibles sont dites
    publiques.

11
Syntaxe Java
  • Le code source d'un programme Java est contenu
    dans plusieurs fichiers d'extension .java
  • Une seule classe publique par fichier
  • Le nom du fichier doit être le même que celui de
    la classe
  • Par convention, le nom d'une classe commence
    toujours par une majuscule.

Le code source d'une classe commence par le
mot-clé class suivi de son contenu
class ltnom de la classegt ltcontenu de la
classegt
12
Types primitifs de données
  • Plus deux nouveaux types
  • boolean
  • byte
  • Plus la classe
  • String
  • Déclaration
  • int monEntier
  • String chaine
  • boolean test
  • Même types qu'en C
  • int
  • float
  • double
  • short
  • long
  • char
  • void

13
Écriture des méthodes
Une méthode est composée de sa signature et d'un
traitement associé.
  • La signature d'une méthode contient notamment
  • un nom de méthode
  • un type de données de retour
  • des types de données pour ses arguments
  • Par convention le nom des méthodes et attributs
    commencent toujours par une minuscule.

lttype de retourgt ltnom de méthodegt ( ltargumentsgt
) lttraitement associégt
14
Exemple classe Livre
class Livre String titre Lecteur
emprunteur void setTitre(String t) titre
t String getTitre() return
titre Date emprunte(Lecteur lec) if
(emprunteur null) emprunteur
lec return new Date() else return
null
Attributs
Méthodes
15
Portée d'une variable
public class Portee int a public void
test(int b) if (a gt b) int c b
b a a b afficher(b)

l'entier a est visible dans toute la classe
16
Portée d'une variable
public class Portee int a public void
test(int b) if (a gt b) int c b
b a a b afficher(b)

l'entier b est visible à l'intérieur de la
méthode test
17
Portée d'une variable
public class Portee int a public void
test(int b) if (a gt b) int c b
b a a b afficher(b)

l'entier c est visible dans le bloc du if
18
Instanciation
  • L'instanciation est l'opération qui consiste à
    créer un objet à partir d'une classe.
  • En Java, le mot-clé new provoque une
    instanciation en faisant appel à un constructeur
    de la classe instanciée.
  • Un constructeur est une méthode qui a le même nom
    que la classe
  • Un constructeur n'a pas de valeur de retour
  • Plusieurs constructeurs peuvent exister dans une
    même classe (avec des arguments différents)
  • Il faut au moins un constructeur dans une classe
    pour en instancier des objets

19
Constructeur de la classe Livre
class Livre String titre Lecteur
emprunteur Livre(String t) titre
t emprunteur null void setTitre(String
t) titre t String getTitre() return
titre Date emprunte(Lecteur lec)
Constructeur
20
Instanciation de la classe Livre
class InterfaceBibliothecaire void
enregistreLivre(String nom) Livre
nouveauLivre nouveauLivre new
Livre(nom) ajouteEnBibliotheque(nouveauLivre)
void ajouteEnBibliotheque(Livre li)

21
Invocation de méthodes
En Java, une méthode ne peut pas être invoquée
seule, elle est toujours appelée sur un objet.
Un point . sépare le nom de la méthode de l'objet
sur lequel elle est invoquée. Livre monLivre
new Livre("Germinal") String titreDuLivre
monLivre.getTitre() Le mot-clé this désigne,
en cours d'exécution d'une méthode, l'objet sur
lequel elle est appelée. La syntaxe pour accéder
aux attributs d'un objet est la même.
22
Exemple
class Livre String titre Lecteur
emprunteur boolean estEmprunte() if
(emprunteur null) return false else
return true Date emprunte(Lecteur lec)
if ( this.estEmprunte() true) return
null if ( lec.empruntPossible() )
emprunteur lec lec.ajouteEmprunt( this
) return new Date() else return
null
class Lecteur Livre emprunts int
nbEmprunts boolean empruntePossible()
if (nbEmprunts lt 5) return true else return
false void ajouteEmprunt(Livre liv)
empruntsnbEmprunts liv nbEmprunts

23
Visibilité des membres
  • La visibilité d'une classe et de ses membres
    définit quelles autres classes y ont accès. Ces
    contraintes portent sur
  • la référence fait à une classe
  • l'invocation d'une méthode sur un objet
  • l'accès en lecture et écriture à un attribut d'un
    objet
  • 4 niveaux de visibilité en Java
  • public visible tous les objets
  • private uniquement visible par les instances de
    la classe
  • protected expliqué ultérieurement
  • par défaut expliqué ultérieurement

24
Exemple de visibilité
public class Lecteur private Livre
emprunts private int nbEmprunts public
boolean empruntePossible() if (nbEmprunts lt
5) return true else return false
public void ajouteEmprunt(Livre liv)
empruntsnbEmprunts liv nbEmprunts

public class Livre private String titre
private Lecteur emprunteur private boolean
estEmprunte() if (emprunteur null)
return false else return true public
Date emprunte(Lecteur lec) if (
this.estEmprunte() true) return null
if ( lec.empruntPossible() ) emprunteur
lec lec.ajouteEmprunt( this )
return new Date() else return null
25
Exceptions
  • En Java, les erreurs se produisent lors d'une
    exécution sous la forme d'exceptions.
  • Une exception
  • est un objet, instance d'une classe
    d'exceptions.
  • peut provoquer la sortie d'une méthode
  • correspond à un type d'erreur
  • contient des informations sur cette erreur

26
Déclaration des exceptions possibles
Une méthode déclare, par le mot-clé throws, dans
sa signature les classes d'exception qu'elle peut
envoyer.
Exemple de la méthode substring de la classe
String
public class String public String
substring(int beginIndex, int endIndex) throws
IndexOutOfBoundsException
27
Traitement des exceptions
Il y a deux manières de traiter une exception
reçue
L'exception est renvoyée à la méthode ayant
invoquée initialesAuteur
28
Émission création d'exceptions
  • Vous devez prévoir tous les cas d'erreurs des
    méthodes que vous écrivez en émettant les
    exceptions appropriées
  • Créer un objet d'une classe d'exception
  • Émettre l'exception

public Date emprunte(Lecteur lec) throws
Exception if ( this.estEmprunte() true)
Exception excep new Exception("Livre
deja emprunte") throw excep if
( lec.empruntPossible() ) emprunteur
lec lec.ajouteEmprunt( this )
return new Date() else throw new
Exception("Le lecteur a trop d'emprunts")

29
Compléments de syntaxe
Instruction conditionnelle
if ltconditiongt bloc_si_vrai else bloc_si_faux
Exemple
if (emprunteur.getStatut() "employe")
unLivre.setDateRetour(30) else
unLivre.setDateRetour(15)
30
Compléments de syntaxe
Instruction itérative
while ltconditiongt bloc
Exemple
while (i lt biblio.nbLivres() ) Livre l
biblio.getLivre(i) l.setDisponible(true)
i
31
Compléments de syntaxe
Instruction itérative
for (ltinitgt ltconditiongt ltincrementgt) bloc
Exemple
for (int i 0 i lt biblio.nbLivres() i )
Livre l biblio.getLivre(i)
l.setDisponible(true)
32
Compléments de syntaxe
Instruction de choix multiple
switch (ltvariablegt) case ltval1gt ltbloc1gt
case ltval2gt ltbloc2gt default ltblocgt
Exemple
switch (l.getCategorie()) case 1
l.setDuree(15) break case 2
l.setDuree(20) break default
l.setDuree(30)
33
Autres particularités de syntaxe
  • On peut utiliser l'opérateur sur les objets de
    classe String
  • String s1 "hello ", s2 "world"
  • String s3 s1 s2
  • ? s3 vaut "hello world"
  • La variable length donne la taille d'un tableau
  • char tab new char25
  • int a tab.length
  • ? a vaut 25
Write a Comment
User Comments (0)
About PowerShow.com