Está en la página 1de 7

3

Constructores y sobrecarga en Java INTRODUCCION. En java, una clase puede contener dos mtodos con el mismo nombre si: Tienen diferente nmero de argumentos Si el tipo de los argumentos es distinto, aunque tenga el mismo nmero de ellos. Para entender esta sencilla propiedad de java, lo mejor es contemplar el siguiente ejemplo de dos mtodos sobrecargados.

Constructores y sobrecarga en Java

public void unMetodo(int numeroEntero) { //Codigo del metodo } public void unMetodo(float numeroReal) { //Codigo del metodo } Como vemos, ambos mtodos tienen el mismo nombre y el mismo nmero de argumentos, en cambio el argumento que reciben es de distinto tipo de modo que cuando se llame al mtodo unMetodo(15), se ejecutar el primero, y cuando se llame de esta manera unMetodo(15.5f), se ejecutar el segundo.

Constructores y sobrecarga en Java Lo mismo ocurre con los constructores, estos pueden sobrecargarse siguiendo las mismas reglas que los mtodos.

Una nota importante es que el tipo de retorno NO sirve para distinguir mtodos. Si dos mtodos tienen el mismo nmero de argumentos, y sus tipos son iguales, no podremos sobrecargar dichos mtodos utilizando diferentes tipos de retorno en cada uno.
//ESTE EJEMPLO CONTIENE UN ERROR public int unMetodo(int i){ //Codigo del metodo } public float unMetodo(int i){ //Codigo del metodo }

Constructores y sobrecarga en Java

En el ejemplo se obtendr un error en tiempo de compilacin avisndonos de que hay dos mtodos iguales, ya que ambos tienen el mismo nombre, el mismo numero de argumentos, y estos son del mismo tipo.

//ESTE EJEMPLO CONTIENE UN ERROR

public int unMetodo(int i){ //Codigo del metodo } public float unMetodo(int i){ //Codigo del metodo }

Constructores y sobrecarga en Java

Los constructores son mtodos especficos de la clase que llevan el mismo nombre que esta. Siempre que se cree un nuevo objeto no primitivo se ejecutar un constructor incluso cuando no se defina ningn constructor por parte del programador, Java ejecutar un constructor automticamente. Como el resto de los mtodos, los constructores pueden estar sobrecargados. Esto significa que podemos definir distintos constructores cambiando el orden, la cantidad y el tipo de parmetros que reciben. Luego dependiendo la manera en la que se cree el objeto con new Java elegir el constructor adecuado basndose en la lista de parmetros.

Constructores y sobrecarga en Java Se tiene que conseguir un equilibrio entre usabilidad (muchos constructores) y cdigo entendible (pocos constructores). El programador eficiente debe ser capaz de declarar solo aquellos constructores que realmente se van a usar, sin caer en la tentacin de crear constructores para todos los posibles casos, por muy incoherentes que parezcan.