Constructores en Java - KarenEsteban/Lenguajes-KarenEsteban GitHub Wiki
¿Que es un constructor Java?
Un constructor es un método especial de una clase que se llama automáticamente siempre que se declara un objeto de esa clase. La principal misión del constructor es reservar memoria e inicializar las variables miembros de la clase.
Funcionamiento del constructor Java
Cuando se crea un objeto en java se realiza las siguientes operaciones de forma automática:
- Se asigna memoria para el objeto.
- Se inicializa los atributos de estos objetos con los valores predeterminados por el sistema.
- Se llama al constructor de la clase que puede ser uno entre varios.
Características del constructor Java
- Debe tener el mismo nombre que la clase a la que pertenece.
- En una clase puede haber varios constructores con el mismo nombre y con distinta cantidad o tipos de argumentos. Es decir permite sobrecarga.
- Los constructores no se heredan.
- Un constructor no puede devolver ningún valor incluyendo el void.
- Un constructor debería declararse publico, para que pueda ser invocado desde cualquier parte donde se desee crear un objeto de su clase.
- Es el primer método que se ejecuta.
- Se ejecuta de forma automática.
Ejemplo
public class Aclaracion {
private int atributo1;
private int atributo2;
private String atributo3;
//Declaramos un constructor
public Aclaracion(int attr1, int attr2, String attr3)
{
atributo1 = attr1;
atributo2 = attr2;
atributo3 = attr3;
}
public static void main(String[] args)
{
Aclaracion ac = new Aclaracion(5, 10, "x");//Creamos un objeto enviando parámetros al constructor
System.out.println(ac.atributo1 + ", " + ac.atributo2 + ", " +ac.atributo3);//Mostramos el valor de los atributos
//Imprime '5, 10, x'
}
}
Constructor Java por defecto
Si para una clase no se define ningún método constructor se crea uno automáticamente por defecto.El constructor por defecto es un constructor sin parámetros que no hace nada. Los atributos del objeto son iniciados con los valores predeterminados por el sistema. Este tipo de constructor se lo llama como constructor no-args, ya que no recibe parámetros.
Constructor Java copia
Es un constructor que recibe por parámetro un objeto del mismo tipo de la clase, asignando atributo por atributo al nuevo objeto generado.
Sobrecarga de constructores o métodos.
Cuando más de un constructor o método tienen el mismo nombre pero distintos parámetros decimos que el constructor o método está sobrecargado. La sobrecarga de constructores o métodos permite llevar a cabo una tarea de distintas maneras (por ejemplo crear un objeto Persona con un nombre ya establecido o crearlo sin nombre establecido).
Ejemplo de clase con dos constructores y un método
public class Persona {
private String nombre;
private int edad;
public Persona (String nombrePersona) { //CONSTRUCTOR 1
nombre = nombrePersona;
edad = 0; }
public Persona () { //CONSTRUCTOR2
nombre = "";
edad = 0; }
public String getNombre () {
return nombre;
} //Cierre del método
} //Cierre de la clase
La clase denominada Persona, nos permite crear objetos de tipo Persona. Todo objeto de tipo Persona estará definido por dos campos: nombre (tipo String) y edad (tipo entero), y admitirá un método: getNombre(). Al realizar la invocación nombreDelObjeto.getNombre() obtendremos el atributo nombre del objeto.
La clase tiene dos constructores. Con los que se pueden crear personas de dos maneras distintas:
a) Personas que se creen con el constructor 1: habrá de indicarse, además del nombre del objeto, el parámetro que transmite el nombre de la persona.
b) Personas que se creen con el constructor 2: no requieren parámetros para su creación y se inicializan a unos valores por defecto (nombre cadena vacía y edad cero).