SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
POO en Java
Ch. IV
Surcharge des méthodes
1
En Java , on peut surcharger une méthode, c’est-à-dire,
définir (dans la même classe) plusieurs méthodes qui ont le
même nom mais pas la même signature (différenciées par le
type des arguments)
On parle de surcharge (overload) ou encore de surdéfinition
lorsqu’un même symbole possède plusieurs significations
différentes entre lesquelles on choisit en fonction du contexte.
Par exemple, dans des expressions arithmétiques telles que a+b :
la signification du symbole + dépend du type des variables a et b.
2
Considérons l’exemple1 suivant où la classe Affichage est
dotée de 2 méthodes afficherValeur:
- La première a un argument de type int
- La deuxième a un argument de type float
class Affichage{
public void afficherValeur(int i){
System.out.println("nombre entier =" + i);
}
public void afficherValeur(float f){
System.out.println("nombre flottant =" + f);
}
}
3
Considérons l’exemple2 suivant où la classe ClasseTest est
dotée de 2 méthodes calcMoyenne:
- La première a deux arguments de type double
- La deuxième a trois arguments de type double
public double calcMoyenne(double m1, double m2) {…}
public double calcMoyenne(double m1, double m2, double m3) {…}
4
class ClasseTest{
public double calcMoyenne(double m1, double m2) {
return (m1+m2)/2;
}
public double calcMoyenne(double m1, double m2, double m3) {
return (m1+m2+m3)/3;
}
}
public class TestSurcharge {
public static void main(String[] args) {
ClasseTest objA;
System.out.println(“Moy1="+objA.calcMoyenne(10., 12.2));
System.out.println(“Moy2="+objA.calcMoyenne(10., 12.6, 8.));
}
}
5
Considérons maintenant l’exemple3 suivant où la classe Point
est dotée de 3 méthodes déplace:
- La première a deux arguments de type int
- La deuxième a un seul argument de type int
- La troisième a un seul argument de type short
public void deplace (int dx, int dy) { x+=dx; y+=dy; }
public void deplace (int dx) { x+=dx; }
public void deplace (short dx) { x+=dx; }
6
class Point {
private int x,y;
public void initialise (int abs, int ord){ x=abs; y=ord; }
public void deplace (int dx, int dy) { x+=dx; y+=dy; }
public void deplace (int dx) { x+=dx; }
public void deplace (short dx) { x+=dx; }
}
public class Surcharge {
public static void main(String arg[]) {
Point a=new Point();
a.initialise(1,2);
a.deplace(1,3); // appel deplace (int,int)
a.deplace(2); // appel deplace (int)
short p=3;
// appel deplace (short)a.deplace(p);
byte b=2;
a.deplace(b); // appel deplace(short) après conversion de b en short
}
}
7
En Java, il est interdit de surcharger une méthode
en changeant le type de retour uniquement:
c’est-à-dire ne différencier les 2 méthodes que par
leur type retour.
Par exemple, on ne peut pas avoir les 2 méthodes
suivante dans une classe :
int division(int, int); // division entière
float division(int, int); // division réelle
8

Más contenido relacionado

La actualidad más candente

Java uik-chap4-poo3
Java uik-chap4-poo3Java uik-chap4-poo3
Java uik-chap4-poo3
Amel Morchdi
 
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Amel Morchdi
 

La actualidad más candente (17)

Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Csharp3 heritage-polymorphisme-interface
Csharp3 heritage-polymorphisme-interfaceCsharp3 heritage-polymorphisme-interface
Csharp3 heritage-polymorphisme-interface
 
POO
POOPOO
POO
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
Cpp3 : heritage
Cpp3 : heritageCpp3 : heritage
Cpp3 : heritage
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Clonage d'objets
Clonage d'objetsClonage d'objets
Clonage d'objets
 
JAVA
JAVAJAVA
JAVA
 
Memo java
Memo javaMemo java
Memo java
 
Java uik-chap4-poo3
Java uik-chap4-poo3Java uik-chap4-poo3
Java uik-chap4-poo3
 
Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
 
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
 

Destacado

Destacado (20)

La theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesLa theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de données
 
base de données -note de cours
base de données -note de cours base de données -note de cours
base de données -note de cours
 
Cours php
Cours php Cours php
Cours php
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EE
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentation
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
 
Mise en place d'un Data Warehouse
Mise en place d'un Data WarehouseMise en place d'un Data Warehouse
Mise en place d'un Data Warehouse
 
Conception des bases de données relationelles
Conception des bases de données relationellesConception des bases de données relationelles
Conception des bases de données relationelles
 
Educational Portal
Educational PortalEducational Portal
Educational Portal
 
Bddwdm
BddwdmBddwdm
Bddwdm
 
Conception datawarehouse
Conception datawarehouseConception datawarehouse
Conception datawarehouse
 
Cahier des charges pour la création d'un data warehouse medical
Cahier des charges pour la création d'un data warehouse medicalCahier des charges pour la création d'un data warehouse medical
Cahier des charges pour la création d'un data warehouse medical
 
script site e-commerce -php
script site e-commerce -php script site e-commerce -php
script site e-commerce -php
 
Théorie de normalisation-base de données
Théorie de normalisation-base de donnéesThéorie de normalisation-base de données
Théorie de normalisation-base de données
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
cours base de données
cours base de donnéescours base de données
cours base de données
 
Sécurité des Systèmes Répartis- Partie 1
Sécurité des Systèmes Répartis- Partie 1 Sécurité des Systèmes Répartis- Partie 1
Sécurité des Systèmes Répartis- Partie 1
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian
 

Similar a Java chap 04 surcharge des méthodes [mode de compatibilité]

Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 java
Amel Morchdi
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
Khalil Lechheb
 
Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinter
RYMAA
 

Similar a Java chap 04 surcharge des méthodes [mode de compatibilité] (20)

Diagramme de Classe
Diagramme de ClasseDiagramme de Classe
Diagramme de Classe
 
Java
JavaJava
Java
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVA
 
Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 java
 
Java
JavaJava
Java
 
Chap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdfChap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdf
 
11-Cours de Géniel Logiciel
11-Cours de Géniel Logiciel11-Cours de Géniel Logiciel
11-Cours de Géniel Logiciel
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Héritage et Polymorphisme .pdf
Héritage et Polymorphisme .pdfHéritage et Polymorphisme .pdf
Héritage et Polymorphisme .pdf
 
Java-3eme partie.pptx
Java-3eme partie.pptxJava-3eme partie.pptx
Java-3eme partie.pptx
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
 
22-reflection.pdf
22-reflection.pdf22-reflection.pdf
22-reflection.pdf
 
Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinter
 
5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdf5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdf
 
Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 
Mathématiques et Python
Mathématiques et PythonMathématiques et Python
Mathématiques et Python
 

Más de Yassine Badri (7)

exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Ch 01 poo
Ch 01 pooCh 01 poo
Ch 01 poo
 

Último

L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
Faga1939
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 

Último (13)

Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 

Java chap 04 surcharge des méthodes [mode de compatibilité]

  • 1. POO en Java Ch. IV Surcharge des méthodes 1
  • 2. En Java , on peut surcharger une méthode, c’est-à-dire, définir (dans la même classe) plusieurs méthodes qui ont le même nom mais pas la même signature (différenciées par le type des arguments) On parle de surcharge (overload) ou encore de surdéfinition lorsqu’un même symbole possède plusieurs significations différentes entre lesquelles on choisit en fonction du contexte. Par exemple, dans des expressions arithmétiques telles que a+b : la signification du symbole + dépend du type des variables a et b. 2
  • 3. Considérons l’exemple1 suivant où la classe Affichage est dotée de 2 méthodes afficherValeur: - La première a un argument de type int - La deuxième a un argument de type float class Affichage{ public void afficherValeur(int i){ System.out.println("nombre entier =" + i); } public void afficherValeur(float f){ System.out.println("nombre flottant =" + f); } } 3
  • 4. Considérons l’exemple2 suivant où la classe ClasseTest est dotée de 2 méthodes calcMoyenne: - La première a deux arguments de type double - La deuxième a trois arguments de type double public double calcMoyenne(double m1, double m2) {…} public double calcMoyenne(double m1, double m2, double m3) {…} 4
  • 5. class ClasseTest{ public double calcMoyenne(double m1, double m2) { return (m1+m2)/2; } public double calcMoyenne(double m1, double m2, double m3) { return (m1+m2+m3)/3; } } public class TestSurcharge { public static void main(String[] args) { ClasseTest objA; System.out.println(“Moy1="+objA.calcMoyenne(10., 12.2)); System.out.println(“Moy2="+objA.calcMoyenne(10., 12.6, 8.)); } } 5
  • 6. Considérons maintenant l’exemple3 suivant où la classe Point est dotée de 3 méthodes déplace: - La première a deux arguments de type int - La deuxième a un seul argument de type int - La troisième a un seul argument de type short public void deplace (int dx, int dy) { x+=dx; y+=dy; } public void deplace (int dx) { x+=dx; } public void deplace (short dx) { x+=dx; } 6
  • 7. class Point { private int x,y; public void initialise (int abs, int ord){ x=abs; y=ord; } public void deplace (int dx, int dy) { x+=dx; y+=dy; } public void deplace (int dx) { x+=dx; } public void deplace (short dx) { x+=dx; } } public class Surcharge { public static void main(String arg[]) { Point a=new Point(); a.initialise(1,2); a.deplace(1,3); // appel deplace (int,int) a.deplace(2); // appel deplace (int) short p=3; // appel deplace (short)a.deplace(p); byte b=2; a.deplace(b); // appel deplace(short) après conversion de b en short } } 7
  • 8. En Java, il est interdit de surcharger une méthode en changeant le type de retour uniquement: c’est-à-dire ne différencier les 2 méthodes que par leur type retour. Par exemple, on ne peut pas avoir les 2 méthodes suivante dans une classe : int division(int, int); // division entière float division(int, int); // division réelle 8