Você está na página 1de 10

Tema: POO e Collections com dart

Objectivos:

 Conhecer o conceito de POO em dart;


 Definir classe e seus componentes;
 Aplicar o relacionamento entre classes;
 Identificar os modificadores de acesso em dart;
 Combinar modificadores de acesso;
 Conhecer os collections em dart;
 Resolver exercícios com recuro a POO.

Recurso: https://dart.dev/ -> ferramenta para uso do dart no browser.


POO (Programação orientada a objectos ) é um paradigma de programação
baseado na ideia de objectos. Um objecto contém atributos (estado) e métodos
(funções que alteram o estado dos atributos), os métodos são conhecidos como
o comportamento do objecto. O objecto são criados a partir de “Classes”.

Classe

Atributos

Construtor

Método

Aula 3 - Ataíde Chilaúle -Pág. 1


A classe é definida pela seguinte sintaxe:
class NomeDaClasse {
….
}
O nome deve iniciar com letra maiúscula.

O construtor é simplificado, a palavra reservada this aloca o valor do


parâmetro a variável. A palavra Super é usada para referenciar a classe parente
a partir da subclasse. Os atributos e métodos são definidos como
aprendemos na aula 1 e 2.

O Flutter permite a relação entre classes tal como em outras linguagens


orientadas a objectos. Podem ser utilizadas as seguintes palavras reservadas:

extends Herança
Esta palavra permite uma classe qualquer herdar as
funcionalidades e características de uma outra classe. A classe
só pode estender a uma única classe. O Dart assim como o
Java não possui suporte a múltipla herança.

Aula 3 - Ataíde Chilaúle -Pág. 2


 O atributo _numeroEstudante possui um underscore
no princípio do nome, indica que este atributo é
privado.
 O construtor da subclasse, invoca o construtor da super
classe com recurso a palavra super.
implements Interface
Permite implementar uma classe, todas as classes são
implicitamente interfaces. Quando uma classe implementa a
outra, todas as funções definidas na superclasse devem ser
implementadas, isto é, quando implementas uma classe, não
herdas nenhum código implementado nas funções.
Podem ser implementadas várias interfaces por uma única
classe.

interface class Carro{


….
}

Aula 3 - Ataíde Chilaúle -Pág. 3


with Mixin
Em dart, a classe pode estender apenas de uma classe. Mixins
permite reusar o código de uma classe múltiplas classes. Isto
é, permite obter código sem a necessidade de criar subclasses.

Criação de objectos em dart

É necessário invocar o construtor, de acordo com os parâmetros definidos na


classe.

Exemplo de Mixing

Aula 3 - Ataíde Chilaúle -Pág. 4


O Flutter possui modificadores de acesso para classes, que são colocados antes
da palavra reservada “class”:

final Uma classe final não pode ser implementada ou estendida, apenas
construida.
sealed A classe não pode ser implementada, estendida ou contruída. O
uso é restrito ao uso interno da biblioteca e possibilita a
verificação exaustiva das subclasses na estrutura switch.
base Não permite a implementação por uma classe externa a
biblioteca, mas pode ser contruída ou estendida. Todas as classes
que irão estender devem ser final ou sealed.

Aula 3 - Ataíde Chilaúle -Pág. 5


abstract Define uma classe que não requer a implementação completa e
concreta de toda interface. Não pode ser construída em nenhuma
biblioteca, quer seja interna ou externa. Geralmente classes
abstractas tem métodos abstractos.
interface Já mencionado
mixin

O dart permite a combinaçãio de modificadores de acesso. Um classe, pode


ser (Em ordem):

1. abstract
2. base, interface, final ou sealed
3. mixin
4. class

No entanto, não se pode combinar os seguintes modificadores de acesso:

 absctract e sealed. Uma vez que a classe sealed é implicitamente


abstracta.
 interface, final ou sealed e mixin.

Veja o site oficial: https://dart.dev/language/modifier-reference#valid-


combinations

Aula 3 - Ataíde Chilaúle -Pág. 6


Collections em dart
O dart possui vários tipos de colecções, mas nos focaremos em:

 List – uma colecção linear em que a ordem dos elementos é mantida.


 Maps – é uma colecção não linear de valores que podem ser acedidos
pela chave única.
 Sets – é uma colecção não linear com únicos valores onde a ordem não
é mantida.

O conceito dessas colecções pode ser comparado com outras linguagens de


programação com uma diferença na nomenclatura:

Dart Java Swift JavaScipt


List ArrayList Array Array
Map HashMap Dictionary Object
Set HashSet Set Set

LIST

Aula 3 - Ataíde Chilaúle -Pág. 7


MAP

SET

Aula 3 - Ataíde Chilaúle -Pág. 8


Exercícios de consolidação:

1. Diferencie uma classe de um objectos?


2. Mencione o tipo de relacionamentos entre classes indicando a sua
aplicabilidade?
3. Enumere os modificadores de acesso em dart?

Exercícios de aplicação:

Em dart, resolva os seguintes exercícios:

1. Desenvolva um programa que permita criar uma conta com os seguintes


atributos, nome, número da conta, saldo, data de criação. Possibilite
igualmente a criação de contas a prazo e conta salário, a conta a prazo
possui uma data de maturidade, e uma flag a indicar se é autorrenovável
ou não, e período de aplicação da conta a prazo. Por outro lado, a conta
salário deve número de nuit.

Aula 3 - Ataíde Chilaúle -Pág. 9


A conta deve permitir, depositar, levantar, imprimir saldo, imprimir
dados da conta e tranferir valor. A conta a prazo de subscrever, toda
subscrição tem o valor mínimo de 4000MZN, o cliente pode fazer
reforços, deve ser possível imprimir o estado da conta a prazo, incluindo
os dados da conta principal. Em norma, todo levantamento custa
100MZN, mas para os utilizadores da conta salário o desconto é de
15MZN.

Aula 3 - Ataíde Chilaúle -Pág. 10

Você também pode gostar