Escolar Documentos
Profissional Documentos
Cultura Documentos
APLICATIVOS MOVEIS
2
3
Orientação a Objetos Com
Dart/Flutter
5
Abstração - Mundo real vs Minimundo
6
Abstração - Mundo real vs Minimundo
7
Abstração - Mundo real
vs Minimundo
9
Definindo nossa “receita de bolo”
• Definição em pseudo código de uma classe Pessoa que tem atributos (Nome, Idade, Sexo e Data de
Nascimento) 10
Criando nossa classe
11
Criando nossa classe
12
Criando nossa classe
13
Descrevendo nossos atributos
14
Descrevendo nossos atributos
• Definimos nossa classe, demos um nome para ela e definimos seus atributos, o
próximo passo será criar um comportamento (método) para ela.
16
Criando comportamentos
17
Criando comportamentos
18
Criando comportamentos
19
Criando comportamentos
20
Criando nosso objeto
21
Criando nosso objeto
• Mas e aquele tal de construtor, onde fica? Repare que a ordem dos parâmetros
seguem respectivamente a ordem definida em nosso construtor:
22
Criando nosso objeto
• Em outras palavras, um construtor serve para isso, ele será chamado durante a
criação do objeto de uma determinada classe, podemos passar parâmetros para a
classe e executar determinadas validações ou funções dentro desse contexto.
24
Utilizando um objeto
class Pessoa { void apresentar() {
String nome; print("Olá, meu nome é ${this.nome} e eu tenho
int idade; ${this.idade} anos");
String sexo; }
DateTime dataDeNascimento; }
26
Encapsulamento
27
Encapsulamento
class contaBancaria {
int numeroDaConta;
double _saldo;
contaBancaria(this.numeroDaConta, this._saldo);
29
Herança
30
Herança
31
Herança - Sobrescrita de métodos
• @override
• void respirar() {
• // TODO: implement respirar
• super.respirar();
• }
32
Polimorfismo
33
Polimorfismo
34
Polimorfismo
• Uma interface é um contrato que especifica o que uma classe deve fazer,
mas não como ela deve fazer. Uma classe que implementa uma interface deve
fornecer uma implementação para todos os métodos definidos na interface
35
Polimorfismo em Dart
36
Polimorfismo em Dart
37
Polimorfismo em Dart
• abstract class Animal { • void comer() {
• void comer(); • print('O gato está comendo');
• } • }
• ----------------------------------------------- • }
• import 'animal.dart'; • ----------------------------------------------------------
• class Cachorro extends Animal { • void main() {
• @override • Animal outroCachorro = new
• void comer() { Cachorro();
• print('O cachorro está comendo'); • Animal outroGato = Gato();
• } • outroCachorro.comer(); // prints 'O
• } cachorro está comendo'
• ---------------------------------------------- • outroGato.comer(); // prints 'O gato está
• import 'animal.dart'; comendo'
• class Gato extends Animal {
• @override • } 38
Polimorfismo em Dart
39
Polimorfismo em Dart
• Agora, podemos criar objetos de Cachorro’ e Gato' e tratá-los como 'Animal'. Isso
é polimorfismo. Podemos chamar o método comer' em um objeto 'Animal', e a
implementação correta do método será chamada com base no tipo real do objeto.
40
E o This?
• Quem é this?
• Para que serve o this?
• Porque usar o this?
• Quando usar o this?
41
E o This?
• Quem é this?
• Quando utilizamos this trata-se do próprio escopo atual onde o mesmo
está sendo referenciado, ou seja, dentro da classe o this nada mais é do
que uma referência da própria classe.
42
E o This?
43
E o This?
44
E o This?
45