Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(overloading)
Un mtodo sobrecargado se utiliza para reutilizar el nombre de un mtodo pero con diferentes
argumentos (opcionalmente un tipo diferente de retorno). Las reglas para sobrecargar un mtodo
son las siguientes:
+ Los mtodos sobrecargados debeb de cambiar la lista de argumentos.
+ Pueden cambiar el tipo de retorno.
+ Pueden cambiar el modificador de acceso.
+ Pueden declarar nuevas o ms amplias excepciones.
+ Un mtodo puede ser sobrecargado en la misma clase o en una subclase.
Veamos un mtodo que se desea sobrecargar:
public void cambiarTamano(int tamano, String nombre, float patron){ }
Los siguientes mtodos son sobrecargas legales del mtodo cambiarTamano():
public void cambiarTamano(int tamano, String nombre){}
public int cambiarTamano(int tamano, float patron){}
public void cambiarTamano(float patron, String nombre) throws IOException{}
Cmo invocar un mtodo sobrecargado::
Lo que define qu mtodo es el que se va a llamar son los argumentos que se envan al mismo
durante la llamada. Si se invoca a un mtodo con un String como argumento, se ejecutar el
mtodo que tome un String como argumento, si se manda a llamar al mismo mtodo pero con un
float como argumento, se ejecutar el mtodo que tome un float como argumento y as
sucesivamente. Si se invoca a un mtodo con un argumento que no es definido en ninguna de las
versiones sobrecargadas entonces el compilador arrojar un mensaje de error.
Ejemplo de una clase con un mtodo sobrecargado:
public class Sobrecarga {
public void Numeros(int x, int y){
System.out.println("Mtodo que recibe enteros.");
}
public void Numeros(double x, double y){
System.out.println("Mtodo que recibe flotantes.");
}
public void Numeros(String cadena){
System.out.println("Mtodo que recibe una cadena: "+ cadena);
}
public static void main (String... args){
Sobrecarga s = new Sobrecarga();
int a = 1;
int b = 2;
s.Numeros(a,b);
s.Numeros(3.2,5.7);
s.Numeros("Monillo007");
}
}
Constructores
Cuando se construye un objeto es necesario inicializar sus variables con valores coherentes,
imaginemos un objeto de la clase Persona cuyo atributo color de pelo al nacer sea verde, un
estado incorrecto tras construir el objeto persona. La solucin en los lenguajes orientados a objetos
es emplear los constructores. Un constructor es un mtodo perteneciente a la clase que posee
unas caractersticas especiales:
De entre los que existan, tan slo uno se ejecutar al crear un objeto de la clase.
Para modifVisibilidad se aplica las mismas normas que para atributos y mtodos:
public: indica que es un mtodo accesible a travs de una instancia del objeto.
Sin especificar: indica visibilidad de paquete, se puede acceder a travs de una instancia,
pero slo de clases que se encuentren en el mismo paquete.
tipo nombreParmetro
La clusula opcional throws es empleada para indicar que dentro del mtodo se pueden generar
errores en su ejecucin, y que debemos estar preparados para tratarlos.
listaExcepciones es el nombre de todos esos posibles errores, su utilizacin la veremos en el punto
dedicado a la gestin de errores mediante try y catch.
El constructor posee un par de llaves, dentro de las cuales estar el cdigo que se ejecutar al ser
llamada la funcin. Dicho cdigo estar formado por instrucciones vlidas en el lenguaje,
finalizadas generalmente por punto y coma.
Prctica:
Vamos a agregar a la clase Persona un par de constructores, uno que la inicialice asignando a la edad un v
public Persona(){
edad = 0;
nombre = "annimo";
}
public Persona(String nuevoNombre){
edad = 0;
nombre = nuevoNombre;
}