Вы находитесь на странице: 1из 6

U.T.O. – F.N.I. ING. DE SISTEMAS – ING.

INFORMÁTICA

SIS – 2330 METODOLOGÍA DE LA PROGRAMACIÓN III


GUÍA DE LABORATORIO # 6

TEMA: SOBRECARGA EN JAVA.


OBJETIVOS.

 Implementar la sobrecarga de métodos y constructores.

FUNDAMENTO TEORICO.

Sobrecargar métodos y constructores

Un método sobrecargado se utiliza para reutilizar el nombre de un método pero con diferentes
argumentos. Las reglas para sobrecargar un método son las siguientes:

 Los métodos sobrecargados deben de cambiar la lista de argumentos.


 Pueden cambiar el tipo de retorno.
 Un método puede ser sobrecargado en la misma clase o en una subclase.

Sobrecarga de métodos y de constructores

La firma de un método es la combinación del tipo de dato que regresa, su nombre y su lista de
argumentos.

La sobrecarga de métodos es la creación de varios métodos con el mismo nombre pero con diferentes
firmas y definiciones. Java utiliza el número y tipo de argumentos para seleccionar cuál definición de
método ejecutar.

Java diferencia los métodos sobrecargados con base en el número y tipo de argumentos que tiene el
método y no por el tipo que devuelve.

También existe la sobrecarga de constructores: Cuando en una clase existen constructores múltiples, se
dice que hay sobrecarga de constructores.

Página 1
Página 2
ACTIVIDAD DE CLASE.

Ejemplo:

/* Métodos sobrecargados */
int calculaSuma(int x, int y, int z){
...
}
int calculaSuma(double x, double y, double z){
...
}

Página 3
/* Error: estos métodos no están sobrecargados */
int calculaSuma(int x, int y, int z){
...
}
double calculaSuma(int x, int y, int z){
...
}

Ejemplo

/* Usuario4.java */

class Usuario4
{
String nombre;
int edad;
String direccion;

/* El constructor de la clase Usuario4 esta sobrecargado */


Usuario4( )
{
nombre = null;
edad = 0;
direccion = null;
}

Usuario4(String nombre, int edad, String direccion)


{
this.nombre = nombre;
this.edad = edad;
this.direccion = direccion;
}

Usuario4(Usuario4 usr)
{
nombre = usr.getNombre();
edad = usr.getEdad();
direccion = usr.getDireccion();
}

void setNombre(String n)
{
nombre = n;
}

String getNombre()
{
return nombre;
}

Página 4
/* El metodo setEdad() está sobrecargado */
void setEdad(int e)
{
edad = e;
}

void setEdad(float e)
{
edad = (int)e;
}

int getEdad()
{
return edad;
}

void setDireccion(String d)
{
direccion = d;
}

String getDireccion()
{
return direccion;
}
}

Ejemplo

/* ProgUsuario4.java */

class ProgUsuario4
{
void imprimeUsuario(Usuario4 usr)
{
// usr.nombre equivale en este caso a usr.getNombre()
System.out.println("\nNombre: " + usr.nombre );
System.out.println("Edad: " + usr.getEdad() );
System.out.println("Direccion: " + usr.getDireccion() +"\n");
}

public static void main(String args[])


{
ProgUsuario4 prog = new ProgUsuario4( );
/* Se declaran dos objetos de la clase Usuario4 */
Usuario4 usr1,usr2;

/* Se utiliza el constructor por omisión */


usr1 = new Usuario4( );
prog.imprimeUsuario(usr1);

Página 5
/* Se utiliza el segundo constructor de Usuario4 */
usr2 = new Usuario4("Eduardo",24,"Mi direccion");
prog.imprimeUsuario(usr2);

/* Se utiliza el tercer constructor de Usuario4 */


usr1 = new Usuario4(usr2);

usr1.setEdad(50);
usr2.setEdad(30.45f);

prog.imprimeUsuario(usr1);
prog.imprimeUsuario(usr2);
}
}

PROBLEMAS PROPUESTOS.

Crear una clase Java con funciones que reciben 1 o 2 parámetros y retornan el resultado de una de las
operaciones: Potencia, Raíz Cuadrada y Logaritmo Natural.
CUESTIONARIO.

Responder lo siguiente:

9- ¿Qué significa sobrecargar (overload) un método?

Editarlo para modificar su comportamiento

Cambiarle el nombre dejándolo con la misma funcionalidad

Crear un método con el mismo nombre pero diferentes argumentos

Añadirle funcionalidades a un método

Página 6

Вам также может понравиться