Escolar Documentos
Profissional Documentos
Cultura Documentos
Termo de uso
Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-
SemDerivados CC BY-NC-ND. Você possui a permissão para realizar o download e compartilhar, desde que atribua os créditos do
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
https://creativecommons.org/licenses/by-nc-nd/4.0/
Apresentação
Compor, juntar, reunir, formar, constituir... Essas ações nos levam a uma ideia
muito interessante na Programação Orientada a Objetos, chamada Composição.
Nesta aula, você verá esse interessante conceito da POO, que nos dá a grande
possibilidade da reutilização de código. Além disso, a ideia de composição também
aproxima a ideia da Orientação a Objetos ao senso comum de sistematização das
coisas, em que um objeto mais complexo pode ser composto de partes mais
simples. Boa aula!!
Objetivos
Saber o que significa Composição ou Agregação;
Criar objetos na linguagem TypeScript que são compostos por outros objetos,
fazendo uso prático do conceito de Composição;
Entender como se comportam os modificadores de acesso de Java na
Composição.
Associação
É uma conexão (relacionamento) entre classes/objetos. Na figura abaixo
temos dois exemplos, no primeiro a classe time de futebol tem um atributo que é
um objeto de outra classe: Jogador. No segundo temos a classe pedido que contém
vários itens pedido, em ambos os casos dizemos que existe uma associação entre
as classes.
Composição ou Agregação
Características:
Veja na figura abaixo quando temos uma composição e quando temos uma
agregação:
Observe que para o primeiro exemplo, a classe jogador não depende da classe
futebol para existir, ou seja, caso a classe jogador não seja utilizada na classe time
de futebol ela continua tendo sentido de existir no contexto do problema. A classe
jogador poderá ser utilizada em outra situação dentro do sistema. Quando não
existe uma dependência tão forte entre as classes podemos dizer que temos uma
relação de agregação.
Conceito
Composição ou Agregação é um mecanismo de reaproveitamento
(reutilização) de classes utilizado pela POO para aumentar a produtividade
e a qualidade no desenvolvimento de software.
Legal não é?!! Isso mesmo que você entendeu, você pode criar um objeto a partir
de vários outros objetos. E isso é muito natural.
Veja o computador que você está usando, ele é um objeto composto por outros
objetos: teclado, monitor, placa mãe, memória, mouse etc.
E tem mais, quando uma classe é composta de outras classes, ela pode tanto usar
os objetos que são gerados pelas classes que a compõem, como pode também
usufruir dos atributos e métodos dessas classes.
Exemplo na prática
Vejamos agora um exemplo na prática! Vamos utilizar a ideia do objeto Carro, dado
uma classe Carro que é composta pelas classes Direção e Motor.
Observe que a classe Carro é composta pelas classes Motor e Direção, eis aqui a
nossa Composição! Mas, lembre-se de que primeiro criamos as classes Motor e
Direção para depois criarmos a classe Carro.
Classe Direção
export class Direcao{
Classe Motor
export class Motor{
Classe Veículo
Download Projeto
Clique no link abaixo para fazer download do projeto desenvolvido na aula.
Atividade 01
1. Para praticar o conceito de composição que você acabou de aprender, tente
olhar o mundo ao seu redor, outros exemplos de objetos do mundo real que
são compostos por outros objetos menores. Anote tais exemplos para que
possamos usá-los em outros exercícios ao longo da nossa aula.
Atividade 02
Crie, baseado no exemplo apresentado, outras classes compostas de várias outras
classes. Lembre-se: para que uma classe possa compor uma outra, é necessário
que ela já exista. Elabore também classes para os exemplos que você mesmo criou
na Atividade 01. As classes são:
Resumo
Nesta aula, você estudou o que é Composição e agregação. Viu que composição
ou agregação é a capacidade de fazer com que uma classe seja composta de vários
objetos de outras classes. A Composição ou agregação oferece a possibilidade de
fazer uso do comportamento das classes que ela agrega (como atributos) de
maneira implícita ou explícita, dependendo da maneira que se escolhe para
instanciar as classes componentes.