Aula 4
Aula 4
Aula 4
3
1.1 Classes
• Pessoa;
• Estudante;
• Animal;
• Carro; e
• Loja.
1.2 Objeto
• Pessoa – Pedro;
• Pessoa -> Luís; e
• Pessoa -> Laura.
Crédito: Nadya_Art/shutterstock.
4
Para que o conceito de classes e objetos seja mais bem compreendido,
faz-se necessária a explicação dos elementos que compõem uma classe:
• Métodos ou comportamentos;
• Atributos ou propriedades; e
• Visibilidade.
2.1 Atributos
5
Figura 4 – Estrutura de um atributo
2.2 Métodos
6
Crédito: EamesBot/shutterstock.
7
• Nomes escritos com letra minúscula;
• Nomes formados por duas ou mais palavras, a partir da segunda palavra,
cada palavra nova deve iniciar com letra maiúscula e não devem existir
espaços entre as palavras; e
• Usar o infinitivo nos nomes.
• calcularValorImposto;
• cadastrar; e
• cancelar.
2.3 Visibilidade
8
• Pública (public): representada pelo símbolo de mais (+), indica que o
atributo ou método pode ser visualizado e utilizado por qualquer classe.
• Protegido (protected): representada pelo símbolo de sustenido (#),
indica que o atributo ou método pode ser visualizado e utilizado somente
pela classe em foi declarada e em suas subclasses.
• Privado (private): representada pelo símbolo de menos (-), indica que o
atributo ou método pode ser visualizado e utilizado somente pela classe
em foi declarada.
3.1 Herança
9
Crédito: Henadzi Kllent/Shutterstock.
10
A maior vantagem do uso da Herança é a de não precisar declarar
novamente os atributos e métodos quando declaramos uma classe com atributos
e métodos específicos e dessa classe em seguida derivamos uma subclasse
com os mesmos atributos e métodos. Com isso, é possível reutilizar o código já
escrito. Somente é necessário declarar os atributos e métodos específicos da
subclasse. Isso facilita a manutenção do código, pois qualquer alteração de
método feita na superclasse já é aplicada nas subclasses.
Além da declaração de atributos e métodos na superclasse que são
transmitidos para as subclasses, é possível atributos e métodos específicos das
subclasses, conforme apresentado na Figura 8.
11
Figura 9 – Exemplo de herança simples
12
3.3 Subclasses
3.4 Abstração
13
caraterísticas para que uma geladeira seja considerada funcional na
conservação dos alimentos e quando identificamos uma geladeira por meio
destes elementos, estamos fazendo uma abstração, pois não consideramos
outras particularidades na sua descrição. Sob a ótica de um vendedor, outras
características são relevantes, tais como preço, voltagem, fabricante e
dimensões. Com isso, identificamos que a abstração faz com que a definição de
objetos e métodos varia de acordo com o referencial adotado.
Aplicando corretamente o conceito de abstração na análise de sistemas,
conseguimos representar apenas as características dos objetos reais que
possuem alguma relevância para o sistema a ser desenvolvido. Na Figura 12,
temos a representação de abstração, ou seja, cada uma das pessoas possui
uma visão do objeto e, com isso, cada uma delas se concentra nas
características do seu interesse.
14
3.5 Encapsulamento
Figura 13 – Encapsulamento
15
O encapsulamento utiliza modificadores de acesso, que controlam o
acesso aos atributos e classes e podem ser classificados como:
3.6 Polimorfismo
16
O polimorfismo permite que objetos diferentes respondam de formas
diferentes a uma mesma mensagem, ou seja, quando existir um método na
subclasse com o mesmo nome do método declarado na superclasse, mas com
diferentes funcionalidades, o sistema deverá verificar qual a classe responsável
pelo método e apresentar o resultado esperado.
A Figura 15 apresenta um exemplo de polimorfismo, a superclasse
animal. Ela possui o método emitiSom(), que contém um comportamento
definido para ela. J as subclasses Leao, Tigre, Elefante, Cachorro e Macaco
possuem o método emitirSom() particular a cada uma delas. Cabe ao sistema
verificar qual das instâncias chamou o método pertencente à classe Animal,
Leao, Tigre, Elefante, Cachorro ou Macaco e com isso executar o método
definido na classe selecionada.
4.1 Relacionamento
• Dependência;
17
• Generalização; e
• Associação.
4.1.1 Dependência
4.1.2 Generalização
18
Figura 17 – Exemplo de generalização e especialização
Generalização
Especialização
4.1.3 Associação
Essa associação ocorre quando uma classe se relaciona com ela mesma,
devido a necessidade de associação de dois objetos da mesma classe. Na
Figura 18, vemos que na classe Funcionário, um funcionário pode ou não
19
gerenciar outros funcionários. Também temos a representação de multiplicidade,
que falaremos a seguir.
20
4.1.3.3 Associação ternária ou N-ária
4.2 Multiplicidade
Multiplicidade Significado
0..1 No mínimo zero (nenhum) e no máximo um. Indica que os
objetos das classes associadas não precisam
21
obrigatoriamente estar relacionados, mas se houver
relacionamento indica que apenas uma instância da classe
se relaciona com as instâncias da outra classe.
1..1 Um e somente um. Indica que apenas um objeto da classe
se relaciona com os objetos da outra classe.
0..* No mínimo nenhum e no máximo muitos. Indica que pode ou
não haver instâncias da classe participando do
relacionamento.
* Muitos. Indica que muitos objetos da classe estão envolvidos
no relacionamento.
1..* No mínimo 1 e no máximo muitos. Indica que há pelo menos
um objeto envolvido no relacionamento, podendo haver
muitos envolvidos.
Fonte: Guedes, 2004.
5.1 Draw.io
22
Um dos pontos negativos dessa ferramenta é a baixa variedade de
componentes e recursos.
Saiba mais
Versão desktop:
DRAW.IO. Disponível em: <https://drawio-app.com/>. Acesso em: 23 fev.
2023.
23
Versão online:
SOFTONIC. Draw.io. Softonic, S.d. Disponível em: <https://draw-
io.softonic.com.br/>. Acesso em: 23 fev. 2023.
5. 2. Lucidchart
24
Para as pessoas que trabalham com diagramas UML, o Lucidchart é uma
ótima opção e assinar um dos planos pode trazer vantagens.
Saiba mais
Versão online:
LUCID. Disponível em: <https://lucid.app/users/login#/login>. Acesso em:
23 fev. 2023.
FINALIZANDO
25
REFERÊNCIAS
_____. UML 2, uma abordagem prática. 2. ed. São Paulo: Novatec, 2011
26