SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Curso de Java
by Antonio Rodrigues Carvalho Neto
Associação
Associação
Associação ocorre quando uma classe
possui atributos do tipo de outra classe.
Pneu
rodar()
int Pressao
Carro
liga()
desliga()
Pneu p1
Pneu p2
Pneu p3
Pneu p4
Nota : Neste caso estamos dizendo que
carro possui pneu (4 pneus)
Associação
A associação pode ser representada em
Java da seguinte forma:
public class Pneu {
int Pressao;
void roda() {
System.out.println(“Pneu em movimento”);
}
}
public class Carro {
Pneu p1;
Pneu p2;
Pneu p3;
Pneu p4;
void liga() {
System.out.println(“Carro ligado”);
}
void desliga() {
System.out.println(“Carro desligado”);
}
}
Exercício
Crie as classes em java conforme o
diagrama abaixo:
Exercício
Modifique a classe Pedido adicionando os
seguintes métodos a ela:
iniciar() – Instancia o vetor produtos.
adicionarProduto() – Deve instanciar um novo
objeto do tipo produto e adicioná-lo no vetor de
produtos.
calculaValor() – Deve varrer o vetor de produtos e
somar o valor de cada produto, retornando a
somatória no final.
Agregação
Agregação
Ocorre quando uma classe usa outras
classes em suas operações. As classes
utilizadas participam da classe principal,
mas a classe principal não contém estas
classes utilizadas como sendo partes
suas.
Agregação
Comprador
compra()
float Verba
Venda
concretizaVenda()
cancelaVenda()
Comprador c
Vendedor v
Produto p
Nota : Neste caso Venda é o objeto definido como sendo o todo. E este
objeto somente pode existir caso os demais objetos que o compõem
também existam.
Vendedor
vende()
float Comissao
Produto
vendido()
float Preco
int Tamanho
Agregação
A agregação pode ser representado da
seguinte forma
public class Vendedor {
float Comissao;
void vende() {
System.out.println(“Vendido”);
} }
public class Venda {
Comprador c;
Vendedor v;
Produto p;
void concretizaVenda() {
System.out.println(“Venda efetuada”);
c.Verba -= p.Preco;
v.Comissao += p.Preco * 0.1f;
p.vendido();
}
void cancelaVenda() {
System.out.println(“Venda cancelada”);
} }
public class Comprador {
float Verba;
void compra() {
System.out.println(“Comprado”);
} }
public class Produto {
float Preco;
int Tamanho
void vendido() {
System.out.println(“Vendido”);
} }
Exercício
Crie as classes em java conforme o
diagrama abaixo:
Composição
Composição
Semelhante a agregação, a composição
também é um conjunto onde há uma
classe representando o todo e classes
satélites funcionando como partes.
Sua principal diferença ocorre que quando
o objeto todo deixar de existir os seus
objetos partes deverão deixar de existir
também.
Composição
Banco
iniciaBanco()
abreConta()
abrePoupanca()
falencia()
ContaCorrente contas[]
Pupanca poups[]
Poupanca
deposita()
saque()
float Saldo
ContaCorrente
deposita()
saque()
extrato()
float Saldo
float ChequeEspecial
Nota : No caso desta composição uma vez que o Objeto banco for destruído
todas os objetos Poupanca e ContaCorrente deverão ser destruídos
também.
Composição
A composição pode ser representado da
seguinte forma:
public class Poupanca {
float Saldo;
void saque() {
Saldo -= 10.0f;
System.out.println(“Novo Saldo ” + Saldo);
}
void deposito() {
Saldo += 10.0f;
System.out.println(“Novo Saldo ” + Saldo);
} }
public class Banco {
Poupanca[] pops;
ContaCorrente[] cc;
int numConta, numPoupanca;
void iniciaBanco() {
pops = new Poupanca[100];
cc = new ContaCorrente[100];
numConta = 1;
numPoupanca = 1;
}
void abreConta() {
cc[ numConta ] = new ContaCorrente();
numConta++;
}
void abrePoupanca() {
pops[ numConta ] = new Poupanca();
numPoupanca++;
}
void falencia() {
for (int i = 0; i< 100; i++) {
pops[ i ] = null;
cc[ i ] = null;
}
} }
public class ContaCorrente {
float Saldo;
void saque() {
Saldo -= 100.0f;
System.out.println(“Novo Saldo ” + Saldo);
}
void saque() {
Saldo -= 100.0f;
System.out.println(“Novo Saldo ” + Saldo);
} }
Exercício
Crie as classes em java conforme o
diagrama abaixo:

Mais conteúdo relacionado

Mais procurados

Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Daniel Brandão
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)Armando Daniel
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfacesRafael Pinheiro
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
BD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalBD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalRodrigo Kiyoshi Saito
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticosCentro Paula Souza
 

Mais procurados (20)

Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Linguagem Java
Linguagem JavaLinguagem Java
Linguagem Java
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
BD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalBD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra Relacional
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos
 

Destaque

Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetosPaulo Carvalho
 
Especialização e generalização em java
Especialização e generalização em javaEspecialização e generalização em java
Especialização e generalização em javaDiogo Winck
 
Associações entre classes
Associações entre classesAssociações entre classes
Associações entre classesIvan Fonseca
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)Marcello Thiry
 
Programação orientada a objetos: herança
Programação orientada a objetos: herançaProgramação orientada a objetos: herança
Programação orientada a objetos: herançaIvan Ricarte
 
Introdução à Metaprogramação com Java Reflection API
Introdução à Metaprogramação com Java Reflection APIIntrodução à Metaprogramação com Java Reflection API
Introdução à Metaprogramação com Java Reflection APIGuilherme de Cleva Farto
 
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...Marcello Thiry
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)Armando Daniel
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosGeorge Mendonça
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 
Consideracoes sobre Ética e Computação
Consideracoes sobre Ética e ComputaçãoConsideracoes sobre Ética e Computação
Consideracoes sobre Ética e ComputaçãoTiago Maluta
 
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...Marcello Thiry
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetrosMaurício Linhares
 
Um algoritmo genético para o problema de roteamento de veículos
Um algoritmo genético para o problema de roteamento de veículosUm algoritmo genético para o problema de roteamento de veículos
Um algoritmo genético para o problema de roteamento de veículosPaulo Remoli
 
POO - Unidade 2 (parte 3) - Diagrama de Sequência (versão 1)
POO - Unidade 2 (parte 3) - Diagrama de Sequência  (versão 1)POO - Unidade 2 (parte 3) - Diagrama de Sequência  (versão 1)
POO - Unidade 2 (parte 3) - Diagrama de Sequência (versão 1)Marcello Thiry
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoAlessandro Binhara
 
Expected Monetary Value - EMV (Project Management Series)
Expected Monetary Value - EMV (Project Management Series)Expected Monetary Value - EMV (Project Management Series)
Expected Monetary Value - EMV (Project Management Series)Marcello Thiry
 
Aula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em JavaAula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em JavaAparicio Junior
 

Destaque (20)

Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Especialização e generalização em java
Especialização e generalização em javaEspecialização e generalização em java
Especialização e generalização em java
 
Associações entre classes
Associações entre classesAssociações entre classes
Associações entre classes
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
 
Programação orientada a objetos: herança
Programação orientada a objetos: herançaProgramação orientada a objetos: herança
Programação orientada a objetos: herança
 
Introdução à Metaprogramação com Java Reflection API
Introdução à Metaprogramação com Java Reflection APIIntrodução à Metaprogramação com Java Reflection API
Introdução à Metaprogramação com Java Reflection API
 
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Consideracoes sobre Ética e Computação
Consideracoes sobre Ética e ComputaçãoConsideracoes sobre Ética e Computação
Consideracoes sobre Ética e Computação
 
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Um algoritmo genético para o problema de roteamento de veículos
Um algoritmo genético para o problema de roteamento de veículosUm algoritmo genético para o problema de roteamento de veículos
Um algoritmo genético para o problema de roteamento de veículos
 
POO - Unidade 2 (parte 3) - Diagrama de Sequência (versão 1)
POO - Unidade 2 (parte 3) - Diagrama de Sequência  (versão 1)POO - Unidade 2 (parte 3) - Diagrama de Sequência  (versão 1)
POO - Unidade 2 (parte 3) - Diagrama de Sequência (versão 1)
 
Introdução a java
Introdução a javaIntrodução a java
Introdução a java
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto Basico
 
Expected Monetary Value - EMV (Project Management Series)
Expected Monetary Value - EMV (Project Management Series)Expected Monetary Value - EMV (Project Management Series)
Expected Monetary Value - EMV (Project Management Series)
 
Aula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em JavaAula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em Java
 

Semelhante a Java orientação a objetos (associacao, composicao, agregacao)

Semelhante a Java orientação a objetos (associacao, composicao, agregacao) (20)

Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
 
Aula5
Aula5Aula5
Aula5
 
Class abstrata java
Class abstrata javaClass abstrata java
Class abstrata java
 
Banco de Dados MySQL + NetBeans Java + Interface Grafica
Banco de Dados MySQL + NetBeans Java + Interface GraficaBanco de Dados MySQL + NetBeans Java + Interface Grafica
Banco de Dados MySQL + NetBeans Java + Interface Grafica
 
Applets
AppletsApplets
Applets
 
OOP Java
OOP JavaOOP Java
OOP Java
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
CURSO JAVA 02
CURSO JAVA 02CURSO JAVA 02
CURSO JAVA 02
 
Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7
 
Java5
Java5Java5
Java5
 
Interface Gráfica.ppt
Interface Gráfica.pptInterface Gráfica.ppt
Interface Gráfica.ppt
 
Java swingcomponentes
Java swingcomponentesJava swingcomponentes
Java swingcomponentes
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#
 
Java interface gráfica swing
Java   interface gráfica swingJava   interface gráfica swing
Java interface gráfica swing
 
Applets e Java web start
Applets e Java web startApplets e Java web start
Applets e Java web start
 
Java introdução ao eclipse
Java   introdução ao eclipseJava   introdução ao eclipse
Java introdução ao eclipse
 
Java13
Java13Java13
Java13
 
Java7
Java7Java7
Java7
 
Abstract
AbstractAbstract
Abstract
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 

Mais de Armando Daniel

Java recursos avançados - streams
Java   recursos avançados - streamsJava   recursos avançados - streams
Java recursos avançados - streamsArmando Daniel
 
Java recursos avançados - socket connection
Java   recursos avançados - socket connectionJava   recursos avançados - socket connection
Java recursos avançados - socket connectionArmando Daniel
 
Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreadingArmando Daniel
 
Java recursos avançados - filters
Java   recursos avançados - filtersJava   recursos avançados - filters
Java recursos avançados - filtersArmando Daniel
 
Java orientação a objetos (introdução)
Java   orientação a objetos (introdução)Java   orientação a objetos (introdução)
Java orientação a objetos (introdução)Armando Daniel
 
Java orientação a objetos (introdução) - exercicios
Java   orientação a objetos (introdução) - exerciciosJava   orientação a objetos (introdução) - exercicios
Java orientação a objetos (introdução) - exerciciosArmando Daniel
 
Java orientação a objetos (herança)
Java   orientação a objetos (herança)Java   orientação a objetos (herança)
Java orientação a objetos (herança)Armando Daniel
 
Java interface gráfica layouts
Java   interface gráfica layoutsJava   interface gráfica layouts
Java interface gráfica layoutsArmando Daniel
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizesArmando Daniel
 

Mais de Armando Daniel (10)

Java code conventions
Java code conventionsJava code conventions
Java code conventions
 
Java recursos avançados - streams
Java   recursos avançados - streamsJava   recursos avançados - streams
Java recursos avançados - streams
 
Java recursos avançados - socket connection
Java   recursos avançados - socket connectionJava   recursos avançados - socket connection
Java recursos avançados - socket connection
 
Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreading
 
Java recursos avançados - filters
Java   recursos avançados - filtersJava   recursos avançados - filters
Java recursos avançados - filters
 
Java orientação a objetos (introdução)
Java   orientação a objetos (introdução)Java   orientação a objetos (introdução)
Java orientação a objetos (introdução)
 
Java orientação a objetos (introdução) - exercicios
Java   orientação a objetos (introdução) - exerciciosJava   orientação a objetos (introdução) - exercicios
Java orientação a objetos (introdução) - exercicios
 
Java orientação a objetos (herança)
Java   orientação a objetos (herança)Java   orientação a objetos (herança)
Java orientação a objetos (herança)
 
Java interface gráfica layouts
Java   interface gráfica layoutsJava   interface gráfica layouts
Java interface gráfica layouts
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizes
 

Java orientação a objetos (associacao, composicao, agregacao)

  • 1. Curso de Java by Antonio Rodrigues Carvalho Neto
  • 3. Associação Associação ocorre quando uma classe possui atributos do tipo de outra classe. Pneu rodar() int Pressao Carro liga() desliga() Pneu p1 Pneu p2 Pneu p3 Pneu p4 Nota : Neste caso estamos dizendo que carro possui pneu (4 pneus)
  • 4. Associação A associação pode ser representada em Java da seguinte forma: public class Pneu { int Pressao; void roda() { System.out.println(“Pneu em movimento”); } } public class Carro { Pneu p1; Pneu p2; Pneu p3; Pneu p4; void liga() { System.out.println(“Carro ligado”); } void desliga() { System.out.println(“Carro desligado”); } }
  • 5. Exercício Crie as classes em java conforme o diagrama abaixo:
  • 6. Exercício Modifique a classe Pedido adicionando os seguintes métodos a ela: iniciar() – Instancia o vetor produtos. adicionarProduto() – Deve instanciar um novo objeto do tipo produto e adicioná-lo no vetor de produtos. calculaValor() – Deve varrer o vetor de produtos e somar o valor de cada produto, retornando a somatória no final.
  • 8. Agregação Ocorre quando uma classe usa outras classes em suas operações. As classes utilizadas participam da classe principal, mas a classe principal não contém estas classes utilizadas como sendo partes suas.
  • 9. Agregação Comprador compra() float Verba Venda concretizaVenda() cancelaVenda() Comprador c Vendedor v Produto p Nota : Neste caso Venda é o objeto definido como sendo o todo. E este objeto somente pode existir caso os demais objetos que o compõem também existam. Vendedor vende() float Comissao Produto vendido() float Preco int Tamanho
  • 10. Agregação A agregação pode ser representado da seguinte forma public class Vendedor { float Comissao; void vende() { System.out.println(“Vendido”); } } public class Venda { Comprador c; Vendedor v; Produto p; void concretizaVenda() { System.out.println(“Venda efetuada”); c.Verba -= p.Preco; v.Comissao += p.Preco * 0.1f; p.vendido(); } void cancelaVenda() { System.out.println(“Venda cancelada”); } } public class Comprador { float Verba; void compra() { System.out.println(“Comprado”); } } public class Produto { float Preco; int Tamanho void vendido() { System.out.println(“Vendido”); } }
  • 11. Exercício Crie as classes em java conforme o diagrama abaixo:
  • 13. Composição Semelhante a agregação, a composição também é um conjunto onde há uma classe representando o todo e classes satélites funcionando como partes. Sua principal diferença ocorre que quando o objeto todo deixar de existir os seus objetos partes deverão deixar de existir também.
  • 14. Composição Banco iniciaBanco() abreConta() abrePoupanca() falencia() ContaCorrente contas[] Pupanca poups[] Poupanca deposita() saque() float Saldo ContaCorrente deposita() saque() extrato() float Saldo float ChequeEspecial Nota : No caso desta composição uma vez que o Objeto banco for destruído todas os objetos Poupanca e ContaCorrente deverão ser destruídos também.
  • 15. Composição A composição pode ser representado da seguinte forma: public class Poupanca { float Saldo; void saque() { Saldo -= 10.0f; System.out.println(“Novo Saldo ” + Saldo); } void deposito() { Saldo += 10.0f; System.out.println(“Novo Saldo ” + Saldo); } } public class Banco { Poupanca[] pops; ContaCorrente[] cc; int numConta, numPoupanca; void iniciaBanco() { pops = new Poupanca[100]; cc = new ContaCorrente[100]; numConta = 1; numPoupanca = 1; } void abreConta() { cc[ numConta ] = new ContaCorrente(); numConta++; } void abrePoupanca() { pops[ numConta ] = new Poupanca(); numPoupanca++; } void falencia() { for (int i = 0; i< 100; i++) { pops[ i ] = null; cc[ i ] = null; } } } public class ContaCorrente { float Saldo; void saque() { Saldo -= 100.0f; System.out.println(“Novo Saldo ” + Saldo); } void saque() { Saldo -= 100.0f; System.out.println(“Novo Saldo ” + Saldo); } }
  • 16. Exercício Crie as classes em java conforme o diagrama abaixo: