Constructores y Sobrecarga de Contructores y Metodos
Constructores y Sobrecarga de Contructores y Metodos
Constructores y Sobrecarga de Contructores y Metodos
UTESA
Programación II
Prof. Fausto Martínez Jiménez
Constructor es una función, método, etc, de las clases, la cual es llamada automáticamente cuando se
crea un objeto de esa clase.
Por ser métodos, los constructores podrían aceptar parámetros. Cuando en una clase no especificamos
ningún tipo de constructor, el compilador añade uno público por omisión sin parámetros, el cual
realmente no realiza ninguna función.
Características de los Constructores
Un constructor, tiene el mismo nombre de la clase a la cual pertenece.
No puede ser heredado.
No retorna ningún valor (ni void, por lo tanto, no debemos especificar ningún tipo de datos.)
Debe declararse como public, sólo en casos realmente extraordinarios será de otro tipo.
Pueden existir varios, pero siguiendo las reglas de la sobrecarga de funciones.
Declaración y uso:
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 rojo, un estado
incorrecto tras construir el objeto persona. La solución en los lenguajes orientados a objetos es emplear
los constructores.
Dentro del código de un constructor generalmente suele existir inicializaciones de variables y objetos,
para conseguir que el objeto sea creado con dichos valores iniciales. También para realizar cualquier
otro procedimiento de inicio requerido para crear un objeto completamente formado.
Para modificar su Visibilidad se aplica las mismas normas que para atributos y métodos:
public: indica que es un método accesible a través de una instancia del objeto.
private: indica que a través de una instancia no es accesible el método. Al heredar el método se
convierte en inaccesible.
protected: indica que a través de una instancia no es accesible el método. Al heredar si se puede
usar desde la clase derivada.
Sin especificar: indica visibilidad de paquete, se puede acceder a través de una instancia, pero
sólo de clases que se encuentren en el mismo paquete.
Lista de Parámetros es la lista de los parámetros que tomará la función separados por comas y
definidos cada uno de ellos como:
tipo nombreParámetro
La cláusula opcional throws es empleada para indicar que dentro del método se pueden
generar errores en su ejecución, y que debemos estar preparados para tratarlos.
This en java
This hace referencia al objeto actual de la clase, es decir, a una instancia concreta de la clase y
nos sirve para usar los métodos y atributos de esa clase desde alguno de sus métodos, para
llamar a otro de sus constructores o simplemente para pasarle el objeto completo a algún otro
método u objeto.
El constructor posee un par de llaves, dentro de las cuales estará el código que se ejecutará al
ser llamada la función. Dicho código estará formado por instrucciones válidas en el lenguaje,
finalizadas generalmente por punto y coma.
El destructor se utiliza para destruir una instancia de una clase y liberar memoria. En Java no
hay destructores, ya que la liberación de memoria es llevada a cabo por el Garbage Collector
cuando las instancias de los objetos quedan desreferenciadas.
Programación en Java/Encapsulamiento. Java, como un lenguaje orientado a objetos,
implementa la encapsulación. Este concepto consiste en la ocultación del estado o de los datos
miembro de un objeto, de forma que sólo es posible modificar los mismos mediante los métodos
definidos para dicho objeto.
UNIVERSIDAD TECNOLÓGICA DE SANTIAGO
UTESA
Programación II
Prof. Fausto Martínez Jiménez
Ejemplos de constructores
public PrimeraClase
{ int a;
public PrimeraClase()
{
a=15;
}
} // fin Primera Clase
//**********
public class Principal
{
Public static void main (String[] args]
{
PrimeraClase p1=new PrimeraClase();
PrimeraClase p2=new PrimeraClase();
}
} // fin clase Principal
UNIVERSIDAD TECNOLÓGICA DE SANTIAGO
UTESA
Programación II
Prof. Fausto Martínez Jiménez
Sobrecarga:
En Java, una firma es el nombre de un método más su lista de parámetros. ... Overloading significa
que un mismo método tiene diferentes firmas. Overriding es el mismo método, misma firma, pero
diferentes clases conectadas a través de la herencia.
Cuando este es el caso, se dice que los métodos están sobrecargados, y el proceso se denomina
sobrecarga de métodos (method overloading). La sobrecarga de métodos es una de las formas en que
Java implementa polimorfismo.
En general, para sobrecargar un método, simplemente declare versiones diferentes de él. El compilador
se ocupa del resto. Debe observar una restricción importante: el tipo y/o el número de parámetros de
cada método sobrecargado debe diferir. No es suficiente que dos métodos difieran solo en sus tipos de
devolución.
Por supuesto, los métodos sobrecargados también pueden diferir en sus tipos de devolución. Cuando
se llama a un método sobrecargado, se ejecuta la versión del método cuyos parámetros coinciden con
los argumentos.
Ejemplo:
//********
// Programa Principal
p.MetodoSobrecargo();
p.MetodoSobrecargo(15);
sumaentero=p.MetodoSobrecargo(12,32);
System.out.println(“Resultado del MetodoSobrecargo(12,32) es: “+sumaentero+”\n”);
sumadouble=p.MetodoSobrecargo(15.52,36.14);
System.out.println(“Resultado del MetodoSobrecargo(15.52,36.14) es: “+sumadouble+”\n”);
}
}
UNIVERSIDAD TECNOLÓGICA DE SANTIAGO
UTESA
Programación II
Prof. Fausto Martínez Jiménez
Nota:
Como puede ver, MetodoSobrecargo() está sobrecargado cuatro veces. La primera versión no toma
parámetros, la segunda toma un parámetro entero, la tercera toma dos parámetros enteros (int), y la
cuarta toma dos parámetros double.
Observe que las primeras dos versiones de MetodoSobrecargo () no devuelven nada, y las otras dos
devuelven un valor. Esto es perfectamente válido, pero tal como se explicó, la sobrecarga no se ve
afectada en un sentido u otro por el tipo de devolución de un método. Por lo tanto, intentar utilizar las
dos versiones siguientes de MetodoSobrecargo() provocará un error:
Nota: