Mobile App Development · Dart/Flutter
Primeiro contato com programação orientada a objetos em Dart: classes, atributos, construtores e métodos.
Nesta aula você vai introduzir a programação orientada a objetos em Dart: criar uma class como molde de um objeto, declarar atributos, inicializá-los com um construtor e adicionar métodos que definem o comportamento das instâncias.
class
Define o molde (blueprint) de um objeto: quais atributos e métodos toda instância dessa classe vai ter.
Um dado armazenado em cada instância da classe, como nome ou idade de uma Pessoa.
Método especial usado para criar (instanciar) um objeto, geralmente inicializando seus atributos com this.atributo.
Uma forma alternativa de criar instâncias da mesma classe, como Usuario.convidado(), útil para configurações padrão.
required this.nome exige que o valor seja informado ao instanciar, deixando a chamada do construtor mais legível.
Uma função declarada dentro da classe que define um comportamento do objeto, como apresentar().
Uma ocorrência concreta de uma classe, criada a partir do construtor — cada objeto tem seus próprios valores de atributos.
// Exemplo: definir uma classe com atributos, construtor com parâmetros
// nomeados obrigatórios e dois métodos que usam esses atributos.
void main() {
// Cria (instancia) um objeto Aluno passando os parâmetros nomeados.
final aluno = Aluno(nome: 'Marina', idade: 22);
aluno.apresentar();
print('Maior de idade? ${aluno.ehMaiorDeIdade()}');
}
// 'class' define o molde do objeto Aluno.
class Aluno {
// Atributos: dados armazenados em cada instância.
String nome;
int idade;
// Construtor com parâmetros nomeados obrigatórios (required).
Aluno({required this.nome, required this.idade});
// Método: comportamento que usa os atributos da instância atual.
void apresentar() {
print('Olá! Meu nome é $nome e tenho $idade anos.');
}
// Método que retorna um bool calculado a partir de um atributo.
bool ehMaiorDeIdade() {
return idade >= 18;
}
}
Olá! Meu nome é Marina e tenho 22 anos. Maior de idade? true
Produto com nome (String), preco (double) e estoque (int).valorEmEstoque() que retorna preco * estoque.valorEmEstoque() de cada um.List e percorra com for.