Menu
Coddy logo textTech

Conceptos básicos de constructores

Parte de la sección Programación Orientada a Objetos del Journey de Dart de Coddy. Lección 8 de 110.

Un constructor es un método especial que se ejecuta automáticamente cuando creas un objeto nuevo. Inicializa las variables de instancia del objeto justo en el momento de su creación.

Aquí tienes un ejemplo de una clase con un constructor:

class Dog {
  String name;
  String breed;

  Dog(String name, String breed) {
    this.name = name;
    this.breed = breed;
  }
}

El constructor tiene el mismo nombre que la clase. Los parámetros se pasan al crear el objeto.

Crea objetos pasando argumentos al constructor:

Dog rex = Dog('Rex', 'German Shepherd');
Dog buddy = Dog('Buddy', 'Golden Retriever');

Accede a las variables establecidas por el constructor:

print(rex.name);
print(rex.breed);
print(buddy.name);
print(buddy.breed);

Salida:

Rex
German Shepherd
Buddy
Golden Retriever

Dart también ofrece una sintaxis abreviada para constructores usando this.variableName directamente en la lista de parámetros:

class Dog {
  String name;
  String breed;

  // Forma abreviada: asigna automáticamente los parámetros a las variables de instancia
  Dog(this.name, this.breed);
}

Ambas versiones producen el mismo resultado. La forma abreviada es una característica popular de Dart que elimina la necesidad de escribir manualmente this.name = name.

También puedes agregar valores de parámetros predeterminados:

class Cat {
  String name;
  int age;

  Cat(this.name, [this.age = 1]); // age por defecto es 1
}

Cat fluffy = Cat('Fluffy', 3);
Cat whiskers = Cat('Whiskers'); // age por defecto es 1

print('${fluffy.name} is ${fluffy.age}');    // Fluffy es 3
print('${whiskers.name} is ${whiskers.age}'); // Whiskers es 1

Punto clave: Los constructores garantizan que cada objeto se inicialice correctamente con datos en el momento de su creación, lo que te evita tener que establecer manualmente las variables después.

challenge icon

Desafío

Fácil

Se te proporcionan archivos PHP (book.dart y driver.dart) para implementar un sistema de libros.

Tus tareas:

  • Completa la clase Book en book.dart añadiendo un constructor que inicialice title, author y pages: utiliza la sintaxis abreviada de Dart Book(this.title, this.author, this.pages);
  • En driver.dart, crea un objeto Book para 'Harry Potter' escrito por 'J.K. Rowling' con 400 páginas

Sigue los comentarios TODO de cada archivo.

Pruébalo tú mismo

import 'book.dart';

void main() {
  // TODO: Crea un objeto Book con:
  // title: 'Harry Potter', author: 'J.K. Rowling', pages: 400
  Book myBook = ?;

  print("'${myBook.title}' by ${myBook.author}, ${myBook.pages} pages");
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de Dart online