3.6 Conceitos básicos de Dart: Classes e Objetos
Dart é uma linguagem orientada a objetos, o que significa que quase tudo é um objeto, incluindo funções e null. Em Dart, as classes são a principal maneira de definir objetos. Entender as classes e objetos é fundamental para dominar Dart e, por extensão, Flutter.
Classes
Em Dart, uma classe é um modelo ou um plano a partir do qual objetos são criados. Uma classe representa um conjunto de propriedades (variáveis) e métodos (funções) que são comuns a todos os objetos de um determinado tipo.
Para definir uma classe em Dart, usamos a palavra-chave 'class' seguida pelo nome da classe. Por exemplo, se quisermos criar uma classe para representar um carro, poderíamos fazer algo assim:
class Car { String model; int year; void drive() { print('Vroom Vroom'); } }
Neste exemplo, 'Car' é uma classe com duas propriedades, 'model' e 'year', e um método chamado 'drive'.
Objetos
Um objeto é uma instância de uma classe. Ele tem um estado e um comportamento. O estado de um objeto é armazenado em suas propriedades e o comportamento é definido por seus métodos. Para criar um objeto a partir de uma classe, usamos a palavra-chave 'new' seguida pelo nome da classe e parênteses. Por exemplo, para criar um objeto da classe 'Car', faríamos o seguinte:
var myCar = new Car();
Neste exemplo, 'myCar' é um objeto da classe 'Car'. Podemos acessar as propriedades e métodos de um objeto usando o operador '.'. Por exemplo, para definir o modelo e o ano do nosso carro e depois fazer o carro dirigir, faríamos o seguinte:
myCar.model = 'Tesla Model S'; myCar.year = 2020; myCar.drive();
Construtores
Um construtor é um método especial que é chamado quando um objeto é criado. Em Dart, cada classe tem um construtor padrão, que não tem parâmetros e não faz nada. No entanto, você pode definir seu próprio construtor para uma classe, o que pode ser útil para inicializar as propriedades de um objeto quando ele é criado.
Para definir um construtor para uma classe, usamos o nome da classe seguido por parênteses. Dentro dos parênteses, podemos definir os parâmetros para o construtor. Por exemplo, poderíamos definir um construtor para a classe 'Car' que aceita o modelo e o ano como parâmetros:
class Car { String model; int year; Car(String model, int year) { this.model = model; this.year = year; } void drive() { print('Vroom Vroom'); } }
Agora, quando criamos um novo carro, podemos passar o modelo e o ano diretamente para o construtor:
var myCar = new Car('Tesla Model S', 2020);
Conclusão
As classes e objetos são conceitos fundamentais em Dart e na programação orientada a objetos em geral. As classes nos permitem definir modelos para objetos, e os objetos nos permitem criar instâncias desses modelos. Os construtores nos permitem inicializar as propriedades de um objeto quando ele é criado. Dominar esses conceitos é essencial para criar aplicativos com Flutter e Dart.