Constructor y Destructor

Anonim

La clase está en el núcleo de la programación orientada a objetos (OOP). Es como un plano para crear objetos que proporciona valores iniciales para las variables y funciones de los miembros. Es el componente básico de OOP que define la naturaleza de un objeto futuro. Lo más importante de una clase es que define un nuevo tipo de datos y, una vez definido, se puede usar para crear objetos de ese tipo. Por lo tanto, sería suficiente decir que una clase es una plantilla para un objeto y, de hecho, un objeto es una instancia de una clase. Se utiliza para crear y administrar nuevos objetos y admitir la herencia, que es uno de los conceptos centrales de los lenguajes de programación orientados a objetos, como Java. En resumen, una clase organiza información sobre un tipo de datos para reutilizar elementos al crear múltiples instancias de ese tipo de datos. Los datos o variables definidas dentro de una clase se llaman variables de instancia.

¿Qué es un constructor?

Un constructor es una función miembro especial de una clase que se llama cuando se crea la instancia de un objeto. A veces puede ser difícil inicializar todas las variables en una clase cada vez que se crea una instancia. Como el requisito de inicialización es común en la programación orientada a objetos, permite que los objetos se inicialicen automáticamente cuando se crean. Este proceso de inicialización automática se realiza mediante el uso de un constructor. La razón por la que se llama especial es porque el método de instancia generalmente tiene el mismo nombre que la clase. Inicializa un objeto inmediatamente después de la creación y puede usarse para establecer los valores de los miembros de un objeto. Un constructor es sintácticamente similar a un método en programación orientada a objetos y un método es un procedimiento asociado con una clase e incluido en cualquier objeto de esa clase. En resumen, se llama a un constructor cada vez que se crea un objeto de una clase. Lo más importante de los constructores es que no tienen Tipo de Devolución, ni siquiera son anulados.

¿Qué es un destructor?

Un destructor es un concepto completamente diferente; es un método especial que se llama cuando la instancia de una clase se elimina de la memoria. Se llama a un destructor automáticamente cuando un objeto ya no es necesario o está a punto de desaparecer o se libera explícitamente. El propósito principal de un destructor es deshacerse de los recursos que el objeto estaba usando durante su ciclo de vida. Le da al objeto la última oportunidad de liberar cualquier memoria que haya asignado para que haya suficiente espacio en el montón para almacenar nuevos objetos para ejecutar programas de manera eficiente. Los destructores se usan a menudo junto con los constructores, excepto que se usan para destruir objetos que se crearon utilizando constructores. La idea es desinicializar objetos cuando se eliminan para liberar memoria para nuevos objetos. Al igual que los constructores, los destructores se definen como subrutinas en la definición de clase y tienen el mismo nombre que el nombre de la clase, excepto que un destructor tiene el prefijo ~ operador (tilde). Los destructores se llaman explícitamente en C ++, sin embargo, no hay destructores en Java.

Diferencia entre constructor y destructor

Propósito del constructor y destructor

Tanto los constructores como los destructores son funciones miembro especiales de cada clase pero con conceptos diferentes. Se utiliza un constructor para inicializar la instancia de una clase, lo que significa que se invoca cada vez que se crea una instancia de una clase, mientras que un destructor es lo opuesto a un constructor que se llama en el orden inverso de los constructores.

Asignación de memoria

Se llama a un constructor cada vez que se crea una nueva instancia de una clase. Es básicamente una función miembro de una clase que inicializa un objeto inmediatamente después de su creación y le asigna memoria. Por otro lado, se llama a un destructor cuando la instancia de una clase se elimina de la memoria, que a su vez desinicializa los objetos que se crearon utilizando constructores para liberar memoria para nuevos objetos.

Nombre

Tanto los constructores como los destructores son funciones miembro especiales de una clase con el mismo nombre que el nombre de la clase, excepto que un destructor tiene el prefijo de un operador ~ (tilde). Un constructor no es más que un método que no tiene tipo de retorno, ni siquiera vacío, mientras que los destructores son exactamente lo opuesto a los constructores.

Sobrecarga

Tanto los constructores como los destructores se llaman automáticamente después de la creación y eliminación. Sin embargo, a diferencia de los constructores, los destructores no pueden ser sobrecargados. La sobrecarga es un concepto de programación orientado a objetos que le permite definir dos o más funciones con el mismo nombre para que pueda llamarlas con diferentes listas de argumentos.

Argumentos

En la programación orientada a objetos, los constructores a menudo aceptan argumentos que usan para establecer las variables de miembro requeridas, mientras que los destructores no aceptan ningún argumento.

Trabajo de constructor y destructor

Los constructores permiten que el objeto inicialice parte de su valor antes de que se use, mientras que los destructores permiten que el objeto ejecute parte del código en el momento en que se destruye.

Constructor Verses Destructor: Tabla de comparación

Resumen de Constructor vs. Incinerador de basuras

Tanto los constructores como los destructores son funciones miembro especiales de una clase con el mismo nombre que el nombre de la clase, excepto que los destructores están precedidos por un operador ~ tilde.Un constructor no es más que un método, excepto que se llama cuando se crea la instancia de un objeto, mientras que un destructor es exactamente lo opuesto a los constructores que se llaman cuando la instancia de un objeto se elimina de la memoria. El propósito de los destructores es desinicializar los objetos que se crearon utilizando constructores para liberar espacio de memoria para alojar objetos nuevos.