INSTRUCTOR : ING.
FORTUNATO VELIZ
[Link]
Programación Orientada a Objetos
Sobrecarga
INDICE
• Objetivo
• Definición
• Sobrecarga de Métodos
• Sobrecarga de Constructores
• Proyecto Propuesto
3
OBJETIVO
• Aplicar la sobrecarga para disponer de diversas versiones de
métodos y constructores que se puedan aplicar dependiendo
de las necesidades que se tengan o se proyecten tener.
4
DEFINICIÓN
• Es la implementación de varios métodos con el mismo nombre,
pero que se diferencian en:
– La cantidad de parámetros
– El tipo de dato de sus parámetros
• Por lo tanto podemos afirmar que los métodos tienen diferente
firma.
5
SOBRECARGA DE MÉTODOS
Clase1
public class Clase1 {
+ operacion1()
public void operacion1() { + operacion1(param1:int)
// Implementación + operacion1(param1:String)
+ operacion1(param1:int, param2:String)
}
public void operacion1(int param1) {
// Implementación
}
public void operacion1(String param1) {
// Implementación
}
public void operacion1(int param1, String param2) {
// Implementación
}
6
SOBRECARGA DE MÉTODOS
Clase1 obj = new Clase1(); Clase1
obj.operacion1(); + operacion1()
obj.operacion1(15); + operacion1(param1:int)
obj.operacion1("abc"); + operacion1(param1:String)
obj.operacion1(15,"abc"); + operacion1(param1:int, param2:String)
7
SOBRECARGA DE CONSTRUCTORES
public class Clase1 {
Clase1
public Clase1(){ + Clase1()
// implementación + Clase1(param1:int)
} + Clase1(param1:String)
public Clase1(int param1){ + Clase1(param1:int, param2:String)
// implementación
}
public Clase1(String param1){
// implementación
}
public Clase1(int param1, String param2){
// implementación
}
8
SOBRECARGA DE CONSTRUCTORES
Clase1
+ Clase1()
Clase1 obj = new Clase1();
+ Clase1(param1:int)
Clase1 obj = new Clase1(20);
+ Clase1(param1:String)
Clase1 obj = new Clase1("abc");
+ Clase1(param1:int, param2:String)
Clase1 obj = new Clase1(20,"abc");
9
PROYECTO EJEMPLO
La empresa EduTec necesita de una librería que permita calcular
el promedio de un conjunto de números.
Se sabe que pueden ser 2, 3, 4 o 5 números.
A usted se le ha encargado que desarrolle la librería que
necesita Edutec y construya una aplicación de prueba.
10
Demos
11