"¡Hola, Amigo! Ahora te voy a contar cómo se crean los objetos".
"¿Qué tiene de complicado, tío Rishi? ¡Escribes nuevo y el nombre de la clase, indicas el constructor correcto y listo!"
"Eso es cierto. Pero, ¿qué sucede dentro del objeto cuando haces eso?"
"¿Lo que sucede?"
"Esto es lo que sucede: el objeto se crea en varias etapas".
1) Primero, se asigna memoria para todas las variables miembro de la clase.
2) Luego se inicializa la clase base.
3) Luego se asignan valores a todas las variables, si se especifica alguna.
4) Finalmente, se llama al constructor.
"No parece muy difícil: primero las variables, luego el constructor".
"Veamos cómo funciona esto en un ejemplo con dos clases:"
Código | Descripción |
---|---|
|
Declare dos clases: Mascota (mascota) y Gato (gato).
En la clase Cat, vemos una llamada explícita al constructor de la clase base . Esto es lo que sucede después de que se asigna la memoria: Entonces la clase Cat comienza a inicializarse. |
|
"Eso es un poco confuso. ¿Por qué es tan complicado?"
"En realidad, no es difícil si sabes lo que realmente está pasando:"
Si una clase no tiene constructores, se creará uno automáticamente.
Constructor predeterminado | |
---|---|
|
|
Si no llama al constructor de la clase base, se llamará automáticamente.
Llamada del constructor de la clase base. | |
---|---|
|
|
|
|
Las variables miembro se inicializan en el constructor.
Inicialización de variables miembro | |
---|---|
|
|
lo que realmente sucede | |
---|---|
|
|
"Ahora está mucho más claro: primero la clase base, luego las variables fuera del constructor, luego el código del constructor".
"¡Bien hecho, Amigo! ¡Eso es todo!"
GO TO FULL VERSION