Constructores y destructores

Un constructor es un método especial de una clase, éste método es llamado automáticamente al crear un objeto de esa clase. La función del constructor es iniciar el objeto.

 

  • Un constructor se identifica porque tiene el mismo nombre que la clase a la que pertenece.
  • Un constructor no puede retornar ningún valor.
  • Toda clase de objetos contiene al menos un constructor, aun cuando no se haya definido ninguno se crear uno por defecto al momento de crear un objeto.
  • Un constructor por defecto se puede declarar o puede ser omitido al crear una clase.
  • Se puede crear uno, dos o más constructores según se necesite.

 

Existen 3 diferentes tipos de constructores en java.

 

1.- Constructor por defecto.

 

2.- Constructor de copia.

 

3.- Constructor común (Con argumentos).

 

 

Ejemplo de una clase con constructor por defecto sin definir:

 

public class Persona {

        private String nombre;

        private String apellidoPaterno;

        private String apellidoMaterno;

}

 

Persona persona=new Persona();

 

La clase anterior se omitió el constructor y al crear el objeto “persona” vemos que se llama a el constructor de la clase, aun cuando no se creo ningún constructor java crea uno por defecto.

 

El operador “new” nos indica que va a crear un objeto con ese constructor.

 

También se puede definir el constructor por defecto de la siguiente manera:

 

public class Persona {

        private String nombre;

        private String apellidoPaterno;

        private String apellidoMaterno;

 

        public Persona(){

 

        }

}

 

Persona persona=new Persona();

 

 

Constructor de copia.

 

El constructor de copia se utiliza para inicializar a un objeto con otro objeto de la misma clase. Ejemplo

 

public class Persona {

        private String nombre;

        private String apellidoPaterno;

        private String apellidoMaterno;

 

        //Constructor por defecto

        public Persona(){

 

        }

 

        //Constructor copia

        public Persona(Persona persona){

                this.nombre=persona.nombre;

                this. apellidoPaterno=persona. ApellidoPaterno;

                this. apellidoMaterno=persona. ApellidoMaterno;

         }

}

 

El método de implementación sería la siguiente.

 

Persona persona=new Persona();

 

Persona personaCopia=new Persona(persona);

 

 

Constructor común.

 

El constructor común es aquel que recibe parámetros para asignarles los valores iniciales a un objeto, se crea de la siguiente manera.

 

public class Persona {

         private String nombre;

         private String apellidoPaterno;

         private String apellidoMaterno;

 

         //Constructor común

         public Persona(String nom, String app, String apm){

                 this.nombre=nom;

                 this. apellidoPaterno=app;

                 this. apellidoMaterno=apm;

         }

}

 

Persona personaCopia=new Persona(“Ricardo”, “González”,”Mercado”);

 

 

De éste modo se inicializa los valores de la persona con los datos pasados como parámetros.

Destructores

Un destructor es un método opuesto a un constructor, éste método en lugar de crear un objeto lo destruye liberando la memoria de nuestra computadora para que pueda ser utilizada por alguna otra variable u objeto.

 

En java no existen los destructores, esto es gracias al recolector de basura de la máquina virtual de java. Como su nombre lo dice, el recolector de basura recolecta todas las variables u objetos que no se estén utilizando y que no haya ninguna referencia a ellos por una clase en ejecución, liberando así automáticamente la memoria de nuestra computadora.

 

Aunque Java maneja de manera automática el recolector de basura, el usuario también puede decir en que momento Java pase el recolector de basura con la instrucción.

 

System.gc();

 

Aunque la instrucción anterior poco o casi nunca se utiliza es importante saber que se puede llamar en cualquier momento.