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 n...
Considérons l’exemple1 suivant où la classe Affichage est
dotée de 2 méthodes afficherValeur:
- La première a un argument ...
Considérons l’exemple2 suivant où la classe ClasseTest est
dotée de 2 méthodes calcMoyenne:
- La première a deux arguments...
class ClasseTest{
public double calcMoyenne(double m1, double m2) {
return (m1+m2)/2;
}
public double calcMoyenne(double m...
Considérons maintenant l’exemple3 suivant où la classe Point
est dotée de 3 méthodes déplace:
- La première a deux argumen...
class Point {
private int x,y;
public void initialise (int abs, int ord){ x=abs; y=ord; }
public void deplace (int dx, int...
En Java, il est interdit de surcharger une méthode
en changeant le type de retour uniquement:
c’est-à-dire ne différencier...
Prochain SlideShare
Chargement dans…5
×

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

545 vues

Publié le

Surcharge des méthodes-java

Publié dans : Formation
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
545
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
Actions
Partages
0
Téléchargements
15
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

  1. 1. POO en Java Ch. IV Surcharge des méthodes 1
  2. 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. 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. 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. 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. 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. 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. 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

×