Tabla de contenido:
Definición - ¿Qué significa Constructor?
Un constructor es un método especial de una clase o estructura en la programación orientada a objetos que inicializa un objeto de ese tipo. Un constructor es un método de instancia que generalmente tiene el mismo nombre que la clase, y se puede usar para establecer los valores de los miembros de un objeto, ya sea por defecto o valores definidos por el usuario.
Techopedia explica Constructor
Los constructores no se llaman explícitamente y se invocan solo una vez durante su vida útil. En el caso de una jerarquía de clases donde una clase derivada hereda de una clase primaria, la secuencia de ejecución del constructor es una llamada al constructor de la clase primaria primero y luego la de la clase derivada. Los constructores no pueden ser heredados.
Se puede declarar un constructor utilizando cualquiera de los modificadores de acceso. Es obligatorio tener un constructor con el modificador de acceso correcto. Sin embargo, el compilador proporciona un valor predeterminado si no se define un modificador de acceso en la clase. Si un constructor se declara como privado, la clase no se puede crear o derivar y, por lo tanto, no se puede instanciar. Tal constructor, sin embargo, puede sobrecargarse con diferentes conjuntos de parámetros.
Se recomienda lo siguiente en el diseño de constructores:
- La lógica que implica operaciones específicas que deben ejecutarse en un evento particular en una aplicación, como abrir una conexión de base de datos, no debe escribirse en un constructor.
- Cuando se usan constructores de clases derivadas, el constructor de la clase padre debe pasar los parámetros correctos.
- La mejor mantenibilidad del código proviene de tener la inicialización y otra lógica relacionada en un constructor principal y hacer una llamada cruzada de este constructor desde otros constructores sobrecargados.
- Debido a que un constructor no puede devolver un valor al código de llamada, es una buena práctica lanzar una excepción cuando se encuentra una falla.