Java - PowerPoint PPT Presentation

Loading...

PPT – Java PowerPoint presentation | free to download - id: 2a494d-ZDc1Z



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

Java

Description:

utilisation des modificateurs de visibilit public, protected, private ... un certain nombre de classes peut tre regroup s en packages. chaque package peut contenir ... – PowerPoint PPT presentation

Number of Views:17
Avg rating:3.0/5.0
Slides: 52
Provided by: Comp1066
Learn more at: http://www.fsz.bme.hu
Category:
Tags: agit | java

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Java


1
Java
  • Héritage, interfaces

2
Menu
  • rappel
  • package
  • modificateurs de visibilité
  • utilité de lhéritage
  • héritage
  • utilisation des modificateurs (extends, super)
  • surécriture des méthodes (override)
  • classes et méthodes abstraites (abstract)
  • les interfaces (interface, implements)
  • résumé des modificateurs
  • classes/interfaces (packages) existantes du JAVA

3
Rappel
  • utilisation des modificateurs de visibilité
    public, protected, private

4
Organisation des classes en packages
  • un certain nombre de classes peut être regroupés
    en packages
  • chaque package peut contenir dautres packages
  • chaque package correspond à un répertoire dans le
    projet
  • les packages forment une arborescence
  • par défaut, toutes les classes appartiennent à
    Default Package

5
arborescence des packages - exemple
Default Package
package1
package2
package3
package4
classe1.java
classe5.java
classe2.java
classe3.java
classe4.java
6
référence aux classes des autres packages
  • Deux possibilités
  • opérateur point
  • package1.package2
  • instruction import au début du fichier
  • import package1.package2
  • toutes les propriétés et les méthodes de cette
    classe peuvent être référencées directement
  • exemple java.lang.Math.sin est une méthode de la
    classe Math du package java.lang

7
créer un nouveau package sous MS J
  • commande Project/New Folder
  • faire glisser les classes dans le répertoire
    correspondant à Project Explorer ou créer les
    nouvelles classes dans le répertoire
  • au début du fichier .java il apparait
  • package nom_package

8
la notion de visibilité
  • propriété une propriété est dite visible par
    une classe si les méthodes de cette classe
    peuvent avoir accès à sa valeur et peuvent la
    modifier.
  • méthode une méthode est dite visible par une
    classe si les méthodes de cette classe peuvent
    lappeler.

9
visibilité des propriétés et des méthodes
  • public visible de partout (à partir des autres
    classes des autres packages également)
  • protected (protégé) visible uniquement à
    partir des classes du même package
  • private (privé) visible uniquement dans la
    classe

10
important
  • Une classe ne peut pas être privée
  • private class toto
  • Une classe ne peut pas être protégée
  • protected class toto

11
Comment rendre accessible une propriété privée?
  • Même si une propriété est privée, on peut y
    accéder à laide des méthodes publiques ou
    protégées.
  • Ces méthodes peuvent être accessible par une
    autre classe.
  • Ces méthodes servent comme une interface entre
    les propriétés privées et des classes
    extérieures.
  • Ces méthodes peuvent réaliser le contrôle daccès
    et la validité des valeurs, donc la protection
    des données.

12
Les méthodes daccès à une propriété privée -
exemple
public class Cercle private double rayon //
méthode constructrice public Cercle (double r)
rayon r // méthodes d'accèes public
double getRayon() return rayon public
int setRayon( double r) if ( rgt0 )
rayon r return 0 else return
-1
Vers lextérieure
getRayon
setRayon
rayon
Classe Cercle
Accès à la valeur
modifier la valeur
La méthode permet dassurer la validité de la
valeur en cas de modification extérieure.
13
Héritage
  • extends, abstract, final, super

14
Hiérarchie des classes
  • Example classification des espèces (Darwin)
  • La hiérarchie va des classes générales vers les
    classes spécifiques

véhicule
voiture
camion
moto
4x4
utilitaire
15
héritage (öröklodés)
  • la classe dérivée possède
  • LES PROPRIETES DE SA CLASSE MERE en fonction des
    modificateurs
  • LES METHODES DE LA CLASSE MERE en fonction des
    modificateurs

16
Héritage des propriétés (exemple)
voiture fabriquant chauffeur
Utilitaire fabriquant, chauffeur cargaison quantit
é
Propriétés héritées
17
Héritage des méthodes (exemple)
voiture démarrer arrêter
Méthodes héritées
Utilitaire démarrer, arrêter charger décharger
18
héritage sous JAVA
  • Dans len-tête da la classe dérivée, le mot clé
    extends sert à préciser la classe mère.
  • Une classe dérivée peut avoir une seule classe
    mère.
  • Tous les propriétés et les méthodes de la classe
    mère sont héritées (i.e. utilisables dans la
    classe dérivée) sauf celles déclarés avec le
    modificateur final
  • Les classes avec les modificateur final ne
    peuvent pas être des classes mères

19
public class EtreHumaine public boolean
sexe public String nom public String
profession // méthode constructrice public
EtreHumaine(boolean s, String n,String p)
sexe s nom n profession
p public void sePresenter() String s
(sexe) ? "homme" "femme" System.out.println("
Mon nom est " nom) System.out.println("Je
suis un(e) " s) System.out.println("Ma
profession " profession"\n")
20
classe dérivée
public class Etudiant extends EtreHumaine //
méthode constructrice public Etudiant (boolean
s, String n) super (s,n,"etudiant")
classe mère (superclass)
appel du constructeur de la classe mère
Code très compact, néanmoins, la classe dérivée
possède les mêmes propriétés et les même méthodes
que sa classe mère
21
démonstration
public class ClasseMain public static void
main(String args) EtreHumaine moi new
EtreHumaine(true,Kiss", "enseignant") moi
.sePresenter() Etudiant qui new
Etudiant(false,"Claire") qui.sePresenter()
try System.in.read() catch (java.io.IOExceptio
n e)
La méthode sePresenter existe pour la classe
dérivée aussi
22
Remarques
  • sous JAVA, lhéritage est dit simple une classe
    ne peut avoir quune seule classe mère
    (lhéritage multiple existe sous C)
  • une classe peut être la mère de plusieurs classes
    dérivées
  • lhéritage permet de déclarer les propriétés et
    les méthodes une seule fois code très compact
    et réutilisation systématique!

23
Exercices
  • ajouter une classe aux précédentes chauffeur
  • ajouter une classe aux précédentes docteur

24
override (surécriture, felülírás)
  • Dans la classe dérivée, on peut redéfinir les
    propriétés et les méthodes de la classe mère.
  • La redéfinition passe par un identificateur
    identique.
  • Les méthodes surécrites de la classe mère sont
    masqués.
  • Cependant, on peut avoir accès aux propriétés et
    méthodes de la classe mère avec le mot clé super
    (voir la méthode constructrice de lexemple
    précédent) en fonction des modificateurs

25
exemple pour la surécriture
public class EtreHumaine public String
nom public EtreHumaine(String no) nom
no public void sePresenter()
System.out.println("Je m'appelle
"nom"\n") public void saluer()
System.out.println("Bonjour!\n")
classe mère
26
classe dérivée
public class Hongrois extends EtreHumaine
public Hongrois(String n) super(n) //
méthodes surécrites public void sePresenter()
// référence à la méthode de la classe
mère super.sePresenter() System.out.println("
Je suis hongrois.\n") public void saluer()
System.out.println("Jo napot
kivanok!\n")
méthode surécrite
méthode surécrite
27
démonstration
public class ClasseMain public static void
main(String args) EtreHumaine qqn new
EtreHumaine("Pierre") qqn.sePresenter()
qqn.saluer() Hongrois moi new
Hongrois("Balint") moi.sePresenter() moi.sal
uer() try System.in.read() catch
(java.io.IOException e)
28
quelques règles de surécriture
  • Les propriétés et les méthodes masquées de la
    classe mère sont référencées à laide du mot clé
    super
  • super.nom_méthode
  • super.nom_propriété
  • On ne peut pas référencer les méthodes et
    propriétés privées (private) de la classe mère si
    elles sont surécrites.
  • Les méthodes finales (final) ne peuvent jamais
    être surécrites dans la classe dérivée.

29
méthodes et classes abstraites
  • une méthode est abstraite si on ne déclare que
    son en-tête.
  • une classe est abstraite si toutes ses méthodes
    sont abstraites.
  • une classe abstraite ne peut pas être instanciée.
    (classe sans objet et sans constructeur)
  • dans une classe dérivée, les méthodes héritées
    doivent être implémentées.
  • Une propriété ne peut pas être abstraite.
  • Une classe abstraite ne peut avoir aucun
    constructeur.

30
exemple dune classe abstraite
classe abstraite
public abstract class CourbeFermee public
abstract double aire() public abstract double
circonference()
en-têtes (sans bloc de code) Ces méthodes doivent
être implémentées dans les classes dérivées
classe sans méthode constructrice
31
première classe dérivée
public class TriangleEquilateral extends
CourbeFermee public double coteLongueur publ
ic TriangleEquilateral (double a)
coteLongueur a // implémentation des
méthodes héritées public double aire()
return coteLongueurMath.cos(Math.PI/6) co
teLongueur/2 public double circonference()
return 3 coteLongueur
implémentation
une méthode existante de la classe java.lang.Math
32
deuxième classe dérivée
public class Cercle extends CourbeFermee
public double rayon public Cercle (double r)
rayon r // implémentation des méthodes
héritées public double aire() return Math.PI
Math.pow(rayon,2) public double
circonference() return 2rayonMath.PI
33
démonstration
public class ClasseMain public static void
main(String args) TriangleEquilateral t1
new TriangleEquilateral(13.56) Cercle
c1 new Cercle(34.76) System.out.println("Ai
re du cercle "c1.aire())
System.out.println("Circ. du triangle "
t1.circonference()) try System.in.read()
catch (java.io.IOException e)
34
Interfaces
  • le mot clé implements

35
Interface approche abstraite
  • Une interface pour un objet regroupe les méthodes
    de cet objet qui ne sont pas liées à sa classe.
  • Considérons par exemple la classe des appareils
    télés.
  • Le fait quun appareil télé peut avoir un prix
    dans un supermarché et peut avoir une panne chez
    un réparateur, nest pas directement lié au fait
    quil sagit dun télé.
  • Par conséquent, il est mieux de déclarer
    séparément quels sont les caractéristiques des
    objet qui sont vendables et réparables cela se
    ferra dans des interfaces.

36
Interface approche abstraite
  • Une classe peut être muni de plusieurs
    interfaces.
  • Équiper une classe par des interfaces est un type
    dhéritage.
  • Comme une classe peut avoir plusieurs interfaces,
    il sagit de lhéritage multiple.

37
Interface en Java
  • En Java, une interface est une classe tel que
  • Toutes les variables sont des variables de classe
    (static)
  • Toutes les variables sont finales (final)
  • Toutes les méthodes sont publique et abstraites
    (public, abstract)

38
Interface conseil dutilisation
  • Ne pas mettre beaucoup de méthode dans une
    classe.
  • Regrouper autant de méthodes en interfaces quon
    peut.
  • Conséquence on peut enrichir le code dune
    classe par limplémentation dune nouvelle
    interface.

39
Implémentation des interafaces
  • En-tête dune classe qui implémente une interface
  • class nomClasse implements nomInterface1,
    nomInterface2
  • La même classe peut implémenter plusieurs
    interfaces héritage multiple

40
Interface exemple
public class EtreHumaine public String
Nom public EtreHumaine(String n) Nom
n
Classe mère
Interface
public interface Presentable public abstract
void sePresenter()
41
Résumé des modificateurs
  • abstract, final, public, protected, private,
    static

42
abstract
  • si une classe est abstraite, alors elle possède
    au moins une méthode abstraite
  • une classe abstraite na pas de constructeur car
    elle ne peut pas avoir des objets
  • si une méthode est abstraite, alors on ne déclare
    que son en-tête

43
final
  • si une classe est finale, alors elle ne peut être
    la classe mère des autres classes
  • si une méthode est finale, alors elle ne peut pas
    être surécrite dans une classe dérivée
  • si une propriété est finale, alors elle ne peut
    pas être modifiée (il sagit dun constant)

44
public
  • si une classe/méthode/propriété est publique,
    alors elle est visible dans les classes des
    autres packages

45
protected
  • si une propriété/méthode est protégée, alors elle
    est visible uniquement dans les classes du
    package où sa classe se trouve
  • une classe ne peut pas être protégée

46
private
  • si une propriété/méthode est privée, alors elle
    est visible uniquement dans la classe où elle se
    trouve
  • une classe ne peut pas être privée

47
static
  • si une propriété est statique, alors il sagit
    dune variable de classe sont il existe un seul
    exemplaire pour tous les objets de la classe
  • si une méthode est statique, alors elle manipule
    les propriétés statiques de sa classe
  • une classe ne peut pas être statique

48
Classe dérivée qui implémente une interface
public class Etudiant extends EtreHumaine
implements Presentable public String
Profession public Etudiant(String
n) super(n) Profession
"etudiant" public void sePresenter()
System.out.println("Je m'appelle "
Nom) System.out.println("Je suis
un(e) " Profession ".")
49
classes (packages) existantes
50
JAVA est fourni avec des packages et classes
standards
  • pour faciliter la tâche des programmeurs, les
    concepteurs du JAVA ont prévu une très large
    gamme de classes, organisées en divers packages
    java.lang, java.awt, java.io, java.util,
    java.sun, etc...

51
Exemple quelques classes du java.lang
  • Integer semblable au primitif int
  • Double semblable au primitif double
  • String on à déjà utilisé
  • Math beaucoup de méthodes et propriétés
    (statiques) de mathématique Math.PI, Math.sin,
    etc
  • pour le reste voir laide en ligne (Microsoft
    Studio Developpement Network)
About PowerShow.com