Menu
Coddy logo textTech

Noções básicas de construtores

Parte da seção Programação Orientada a Objetos do Journey de Dart da Coddy. Lição 8 de 110.

Um construtor é um método especial que é executado automaticamente quando você cria um novo objeto. Ele inicializa as variáveis de instância do objeto exatamente no momento da criação.

Aqui está um exemplo de uma classe com um construtor:

class Dog {
  String name;
  String breed;

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

O construtor tem o mesmo nome que a classe. Os parâmetros são passados ao criar o objeto.

Crie objetos passando argumentos para o construtor:

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

Acesse as variáveis definidas pelo construtor:

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

Saída:

Rex
German Shepherd
Buddy
Golden Retriever

Dart também oferece uma sintaxe abreviada de construtor usando this.variableName diretamente na lista de parâmetros:

class Dog {
  String name;
  String breed;

  // Atalho: atribui automaticamente os parâmetros às variáveis de instância
  Dog(this.name, this.breed);
}

As duas versões produzem o mesmo resultado. A forma abreviada é um recurso popular do Dart que elimina a necessidade de escrever this.name = name manualmente.

Você também pode adicionar valores de parâmetros padrão:

class Cat {
  String name;
  int age;

  Cat(this.name, [this.age = 1]); // age tem valor padrão 1
}

Cat fluffy = Cat('Fluffy', 3);
Cat whiskers = Cat('Whiskers'); // age tem valor padrão 1

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

Ponto-chave: os construtores garantem que todo objeto seja devidamente inicializado com dados no momento em que é criado, evitando que você precise definir manualmente as variáveis depois.

challenge icon

Desafio

Fácil

Você recebeu arquivos PHP (book.dart e driver.dart) para implementar um sistema de livros.

Suas tarefas:

  • Conclua a classe Book em book.dart adicionando um construtor que inicialize title, author e pages: use a syntax abreviada do Dart Book(this.title, this.author, this.pages);
  • Em driver.dart, crie um Book object para 'Harry Potter' de 'J.K. Rowling' com 400 páginas

Siga os comentários TODO em cada arquivo.

FORMATO DE SAÍDA OBRIGATÓRIO: [Seu conteúdo traduzido aqui]

Experimente você mesmo

import 'book.dart';

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

  print("'${myBook.title}' by ${myBook.author}, ${myBook.pages} pages");
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de Dart online