Diferencia entre constructor y destructor

Diferencia entre constructor y destructor

La clase está en el núcleo de la programación orientada a objetos (OOP). Es como un plan para crear objetos que proporcionen valores iniciales para variables y funciones de 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 un objeto de hecho es una instancia de una clase. Se utiliza para crear y administrar nuevos objetos y apoyar 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 hacer múltiples instancias de ese tipo de datos. Los datos o variables definidas dentro de una clase se denominan 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 se puede usar para establecer los valores de los miembros de un objeto. Un constructor es sintácticamente similar a un método en la 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 retorno, ni siquiera nulo.

¿Qué es un destructor??

Un destructor es completamente un concepto diferente; Es un método especial que se llama cuando la instancia de una clase se elimina de la memoria. Un destructor se llama automáticamente cuando un objeto ya no es necesario o está a punto de desaparecer o se libera explícitamente. El objetivo principal de un destructor es deshacerse de los recursos que el objeto estaba utilizando durante su ciclo de vida. Le da al objeto la última oportunidad de liberar cualquier recuerdo que asignó para que haya suficiente espacio en el montón para almacenar nuevos objetos para ejecutar programas de manera eficiente. Los destructores a menudo se usan junto con constructores, excepto que se usan para destruir objetos que se crearon usando constructores. La idea es desitializar objetos cuando se eliminan para liberar la 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 prefijo un ~ (Tilde) operador. 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 especiales para miembros de cada clase, pero con diferentes conceptos. Se utiliza un constructor para inicializar la instancia de una clase, lo que significa que se invoca cada vez que se instancia 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. Básicamente es una función miembro de una clase que inicializa un objeto inmediatamente después de la creación y le asigna memoria. Se llama a un destructor, por otro lado, cuando la instancia de una clase se elimina de la memoria que en su vez desitializa los objetos que se crearon utilizando constructores para liberar la memoria para nuevos objetos.

Nombre

Tanto los constructores como los destructores son funciones especiales para miembros de una clase con el mismo nombre que el nombre de la clase, excepto que un destructor tiene prefijo un operador ~ (tilde). Un constructor no es más que un método que no tiene un tipo de retorno, ni siquiera nulo, 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 se pueden sobrecargar. 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 llamarlos 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 miembros 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 una parte del código en el momento en que se está destruyendo.

 Constructor Versos Destructor: Gráfico de comparación

Resumen del constructor vs. Incinerador de basuras

Tanto los constructores como los destructores son funciones especiales para miembros de una clase con el mismo nombre que el nombre de la clase, excepto que los destructores están precedidos por un operador de ~ 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 desitializar objetos que se crearon utilizando constructores para liberar espacio de memoria para acomodar nuevos objetos.