Menu
Coddy logo textTech

A Palavra-chave this

Parte da seção Programação Orientada a Objetos do Journey de Dart da Coddy — lição 5 de 110.

A palavra-chave this refere-se à instância atual de uma classe. Dentro de um método, this permite que você acesse as próprias variáveis do objeto.

Aqui está um exemplo de uma classe com métodos usando this:

class Car {
  String color = '';
  String model = '';

  void honk() {
    print('Beep beep!');
  }

  void describe() {
    print('I am a ${this.color} ${this.model}');
  }
}

Dentro de describe(), this.color e this.model referem-se às variáveis daquele objeto específico.

Crie um objeto car e defina suas variáveis:

Car myCar = Car();
myCar.color = 'Red';
myCar.model = 'Sedan';

Chame os métodos:

myCar.honk();
myCar.describe();

Saída:

Beep beep!
I am a Red Sedan

this é especialmente útil quando um parâmetro de método tem o mesmo nome que uma variável de instância:

class Car {
  String color = '';

  void setColor(String color) {
    this.color = color; // this.color = variável de instância, color = parâmetro
  }
}

Sem this, o Dart não saberia se color se refere ao parâmetro ou à variável de instância. Ponto Chave: this sempre se refere ao objeto específico que está chamando o método no momento.

challenge icon

Desafio

Fácil

Complete a classe Car em car.dart adicionando um método chamado displayInfo que utiliza a palavra-chave this para imprimir o ano, a marca e o modelo do carro no formato:

'This car is a [year] [make] [model]'

  • car.dart: Contém a classe Car onde você adicionará o método displayInfo
  • driver.dart: Define variáveis em um objeto car e chama displayInfo() (bloqueado)

Folha de consulta

A palavra-chave this refere-se à instância atual de uma classe e permite que você acesse as variáveis do próprio objeto dentro de métodos.

Usando this em um método:

class Car {
  String color = '';
  String model = '';

  void describe() {
    print('I am a ${this.color} ${this.model}');
  }
}

O this é especialmente útil quando um parâmetro de método tem o mesmo nome que uma variável de instância:

class Car {
  String color = '';

  void setColor(String color) {
    this.color = color; // this.color = variável de instância, color = parâmetro
  }
}

Sem o this, o Dart não saberia se color se refere ao parâmetro ou à variável de instância.

Experimente você mesmo

import 'car.dart';

void main() {
  Car myCar = Car();
  myCar.year = '2020';
  myCar.make = 'Toyota';
  myCar.model = 'Corolla';
  myCar.displayInfo();
}
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