Académique Documents
Professionnel Documents
Culture Documents
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 1
Polymorphisme
Exemple II-6
L'envoi et la rception d'appels se fait diffremment sur un tlphone standard et sur un tlphone cellulaire L'intention de l'envoi et de la rception est la mme
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 2
Exercice II-7
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 3
Un algorithme peut utiliser un ou plusieurs objets Les objets utiliss dans un algorithme sont dclars dans la liste des variables de l'algorithme
Le type de l'objet correspond la classe de cet objet
On peut utilis les attributs et comportements publics de l'objet dans la logique de l'algorithme
Pour utiliser un attribut : nomObjet.nomAttribut Pour utiliser un comportement : nomObjet.nomComportement(liste des paramtres)
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 4
Exercice II-8
Soit le modle objet ci-contre reprsentant les informations sur des employs d'une entreprise
Les administrateurs ont un salaire annuel seulement Tous les autres employs ont un salaire horaire Le tableau employs contient la liste de tous les employs de l'entreprise
Technicien -spcialit
Administrateur -salaireAnnuel
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 5
Programmes Java
Un programme Java est un ensemble d'objets qui cooprent afin de rsoudre un problme
Une mthode appele main() est utilise pour initialiser les objets et coordonner leur comportement Cette mthode est localise dans une classe qui agit comme contrleur de l'excution On dit alors que cette classe est une application Java
Les caractristiques des objets sont dfinies dans des classes Java Les classes spcifient
Les attributs des objets Les comportements des objets
En programmation, les comportements sont les mthodes
Les classes avec visibilit publique sont codes dans des fichiers spars ayant le mme nom que la classe et portant l'extension .java
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 6
Exemple II-7
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 7
L'oprateur new alloue l'espace en mmoire ncessaire pour stocker les attributs de l'objet Le mot cl new est suivi par un appel un constructeur
Le nom du constructeur correspond la classe de l'objet cr
Exemple II-8
Tarif t = new Tarif(); Tlphone t = new TlphoneCellulaire(); L'objet sait qu'il est de type TlphoneCellulaire mme s'il est assign une variable de type Tlphone Seules les mthodes de la classe Tlphone peuvent tre invoques
Le comportement de la mthode est celui de la classe TlphoneCellulaire
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 8
Les constructeurs
Un constructeur est utilis pour initialiser les attributs d'un objet lors de sa cration
On peut fournir plusieurs constructeurs pour une classe donne Un constructeur peut faire appel un autre constructeur de la mme classe
Les diffrents constructeurs sont alors diffrencis par leur signature
On utilise alors l'expression this(...) avec les paramtres correspondant l'autre constructeur Cet appel doit tre le premier dans le constructeur On utilise alors l'expression super(...) avec les paramtres correspondant l'autre constructeur Cet appel doit tre le premier dans le constructeur
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 9
Constructeur 1
Constructeur 2
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 10
Les paquetages ( packages ) sont une organisation hirarchique des classes On dclare le nom d'un paquetage l'aide du mot cl package au dbut du fichier contenant la classe
Ce nom doit correspondre au nom du rpertoire contenant la classe Lorsqu'on omet le nom du paquetage, le paquetage est dfini comme le rpertoire contenant la classe Pour nommer une classe, on doit normalement la prfixer de son nom de paquetage Par dfaut, le compilateur Java utilise le paquetage java.lang
Pour simplifier l'criture, on peut indiquer au compilateur qu'on utilise une classe provenant d'un autre paquetage avec le mot cl import Exemple II-10
package algo; // cette classe doit tre dans le rpertoire "algo"
import java.util.Random; // la classe Random du paquetage java.util import java.util.*; // toutes les classes du paquetage java.util
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 11
Visibilit en Java
Visibilit protge : seuls les objets de cette classe et ses sous-classes ont accs
On utilise le mot cl protected protected String gnreID() {}
Visibilit de paquetage : seuls les objets des classes du mme paquetage ont accs
On n'utilise aucun mot cl String gnreID() {}
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 12
Exercice II-9
Serveur9 -factures : int +prendreCommande(entre item : int, entre Client : Client9) : void +servirPlat(entre item : int, entre client : Client9) : void +produireFacture(entre client : Client9) : int
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 13
Pause
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 14
On spcifie une mthode abstraite l'aide du mot cl abstract, plac aprs la visibilit et le type retourn par la mthode
Cette mthode n'a pas d'implantation et la dclaration est termine avec un pointvirgule
On spcifie une classe abstraite l'aide du mot cl abstract, plac aprs la visibilit de la classe
Une classe ayant au moins une mthode abstraite doit aussi tre dclare abstraite Une classe abstraite peut avoir un ou plusieurs constructeurs
On ne peut pas invoquer directement ces constructeurs avec le mot cl new On peut inviquer ces constructeurs partir des constructeurs des sous-classes de la classe abstraite
Exemple II-11
public abstract class Animal { public abstract void mange() ; public abstract void marche() ; }
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 15
Java permet de spcifier des interfaces gnriques Ces interfaces peuvent contenir
Des constantes associes cette interface Un ensemble de mthodes abstraites
Tout attribut dclar dans une interface est ncessairement une constante accs public
Toute mthode dclare dans une interface est ncessairement abstraite et accs public
Les interfaces avec visibilit publique sont codes dans des fichiers spars ayant le mme nom que l'interface et portant l'extension .java
Exemple II-12
public interface Connecteur { tablirConnection() ; }
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 16
En Java, la relation de gnralisation/spcialisation se matrialise avec l'oprateur extends Java ne supporte que l'hritage simple
On l'utilise pour indique qu'une classe spcialise ( extends ) une super-classe On l'utilise pour indique qu'une interface spcialise ( extends ) une super-interface Une classe ne peut spcialiser qu'une seule classe
La sous-classe hrite de toutes les caractristiques accessibles de la super-classe Par dfaut, toutes les classes hritent de la classe java.lang.Object La sous-interface hrite de toutes les caractristiques accessibles de la super-interface
Exemple II-13
public class TlphoneCellulaire extends Tlphone { ... } public interface Priselectrique extends Connecteur { ... }
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 17
Ralisation en Java
Exemple II-14
public class PriseCanadienne implements Priselectrique { ... } public class Maison { public static void main (String argv[]) { Priselectrique prise = new PriseCanadienne(); } }
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 18
Exercice II-10
crivez les classes et interfaces Java correspondant aux diagrammes UML suivants
CompteChque10 Comptepargne10 -tauxIntrts : float +verserIntrts() : int -soldeMinimum : int -fraisFixes : int +retirer(entre montant : int) : void +traiterChque(entre montant : int) : void
Machine10
Employ10
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 19
L'association indique une relation pouvant exister entre les objets de deux (association binaire) ou plusieurs classes (association n-aire) En Java, on matrialise une association en crant un attribut dans les classes lies par l'association
Si la multiplicit maximale est 1, le type de l'attribut est le mme que celui de la classe lie Si la multiplicit est plus de 1, le type de l'attribut est habituellement un tableau du type de la classe lie Le nom de l'attribut correspond au rle jou par la classe dans l'association
Si un des bouts de l'association n'est jamais utilis pour retracer un objet, on ne cre aucun attribut
On dit que l'association n'est pas navigable dans ce sens
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 20
Exercice II-11
Employ11
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 21
Polymorphisme et Java
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 22
Exemple II-15
Une classe donne peut fournir une nouvelle dfinition pour toString()
La classe java.lang.Integer redfinit cette mthode pour retourner la valeur entire qu'elle contient La classe java.util.Date redfinit cette mthode pour retourner la date sour forme d'une chane de caractres
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 23
Java permet d'associer une mthode une classe plutt qu' un objet spcifique Java permet de crer un attribut dont la valeur est partage par tous les objets de cette classe On spcifie un attribut ou une mthode d'instance en ajoutant le mot cl static aprs le mode d'accs et avant le type
public static void main (String argv[]) {} On dira que cet attribut est un attribut de classe Cette mthode ne ncessite pas l'existence d'un objet On dira que cette mthode est une mthode de classe
On accde un attribut ou une mthode d'instance en spcifiant la classe, puis le nom de l'attribut ou de la mthode
Exemple II-16
La classe java.lang.Math fournit plusieurs mthodes de classe permettant de raliser des oprations mathmatiques
Math.floor() : calcule l'arrondi par dfaut Maht.ceil() : calcule l'arrondi par excs
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 24
Attribut
Mthode
d'instance de classe
d'instance
oui non
de classe
oui oui
Dans UML, ont indique les mthodes et attributs d'instance en les soulignant
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 25
Exercice II-12
crivez les classes et interfaces Java ncessaires pour implanter l'algorithme de l'exercice II-8
Considrez toutes les variables de type entier Le tableau employs est un attribut de la classe Dpartement L'algorithme est la mthode main () de la classe Dpartement
Dernire mise jour: 14 novembre 2012, Service de l'enseignement des technologies de l'information cole des HEC de Montral, 2002. Tous droits rservs.
page 26