4.1. Conceitos Avançados de Dart: Classes e Objetos
O Dart é uma linguagem de programação orientada a objetos, desenvolvida pelo Google, que oferece suporte robusto e flexível para a criação de aplicativos da web, móveis e desktop. Um dos conceitos fundamentais que o Dart utiliza é o de classes e objetos. Este conceito é fundamental para a compreensão de como o Dart opera e como podemos usá-lo para criar aplicativos sofisticados com Flutter.
Classes
Uma classe em Dart é um modelo para a criação de objetos. Uma classe define um conjunto de propriedades (chamadas variáveis de instância) e métodos que são específicos para o objeto. Quando criamos um objeto, estamos essencialmente criando uma instância de uma classe.
Para criar uma classe em Dart, usamos a palavra-chave 'class' seguida pelo nome da classe. O nome da classe deve começar com uma letra maiúscula. Dentro das chaves {}, definimos as propriedades e métodos da classe. Por exemplo, podemos criar uma classe 'Carro' com propriedades 'cor' e 'modelo' e um método 'dirigir'.
class Carro { String cor; String modelo; void dirigir() { print('O carro está dirigindo'); } }
As propriedades 'cor' e 'modelo' são variáveis de instância, enquanto 'dirigir' é um método da classe Carro.
Objetos
Um objeto é uma instância de uma classe. Quando criamos um objeto, estamos essencialmente criando uma cópia da classe com seu próprio conjunto de valores para as variáveis de instância. Para criar um objeto em Dart, usamos a palavra-chave 'new' seguida pelo nome da classe e parênteses ().
Carro meuCarro = new Carro();
Neste exemplo, 'meuCarro' é um objeto da classe Carro. Podemos agora definir os valores para as variáveis de instância 'cor' e 'modelo' e chamar o método 'dirigir'.
meuCarro.cor = 'vermelho'; meuCarro.modelo = 'sedan'; meuCarro.dirigir(); // Imprime 'O carro está dirigindo'
Construtores
Um construtor é um método especial dentro de uma classe que é chamado quando criamos um novo objeto. O Dart permite a criação de construtores para inicializar as variáveis de instância durante a criação do objeto. O construtor tem o mesmo nome da classe e pode ter parâmetros opcionais.
class Carro { String cor; String modelo; Carro(String cor, String modelo) { this.cor = cor; this.modelo = modelo; } void dirigir() { print('O carro está dirigindo'); } }
Neste exemplo, o construtor Carro() recebe dois parâmetros, 'cor' e 'modelo', e os atribui às variáveis de instância correspondentes. Agora, quando criamos um novo objeto Carro, precisamos fornecer os valores para 'cor' e 'modelo'.
Carro meuCarro = new Carro('vermelho', 'sedan');
Em conclusão, as classes e objetos em Dart fornecem uma poderosa estrutura para modelar e organizar o código em aplicativos Flutter. Eles permitem que encapsulemos dados e comportamentos relacionados em um único pacote reutilizável, tornando nosso código mais modular, flexível e fácil de entender e manter.