Lección 12 / 20

Constructores

En esta lección crearás varias formas distintas de construir un mismo objeto.

Además del constructor principal, Dart permite constructores con nombre: Animal.baby(this.name) : age = 0;. La parte que va detrás de los dos puntos es la lista de inicialización, y se ejecuta antes del cuerpo del constructor.

El código de ejemplo crea un animal indicando nombre y edad, y una cría a la que solo hay que darle el nombre porque su edad siempre empieza en 0.

La razón de que existan es que Dart no admite sobrecarga de constructores: no puedes tener dos Animal(...) con parámetros distintos, como harías en Java o C++. En vez de eso, se le pone nombre a cada variante. El resultado se lee incluso mejor, porque Animal.baby('Michi') dice qué está pasando mucho más claro que adivinarlo por el número de argumentos.

Es un patrón que verás constantemente en las bibliotecas de Dart y Flutter: DateTime.now(), List.filled() o Color.fromARGB() son todos constructores con nombre.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Dart directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)