Linguagem de Programação II Relacionamento entre classes Prof. Alessandro Borges
2 Tópicos Relacionamento entre Classes Associação Definição Cardinalidade / Multiplicidade Conectividade Tipos de Associação Exemplos de Associação em Java Mensagens Definição Representação Gráfica Diagrama de Classes Exemplos
3 Associação Definição
4 Relacionamento entre Classes Associação É uma conexão entre classes. Os objetos de uma classe estão ligados a objetos de outras classes pode haver troca de informações (mensagens) e compartilhamento de métodos. Ocorre normalmente entre duas classes (binária), entre uma classe com ela mesma (unária) e entre várias classes (ternária/n-ária). Equivale aos relacionamentos E-R.
5 Relacionamento entre Classes Associação Exemplos Cliente Compra Produto ContaCorrente Possui HistoricoTransações
6 Associação Cardinalidade / Multiplicidade
7 Cardinalidade / Multiplicidade entre Classes Consiste na quantidade mínima e máxima de objetos que podem ser conectados pela instância de uma associação. Exemplo: Pessoa Trabalha na 1..* 0..* Empresa Multiplicidade Multiplicidade
8 Cardinalidade / Multiplicidade entre Classes Exemplos: Cliente Faz 1 0..* Pedido
9 Cardinalidade / Multiplicidade entre Classes Exemplos: Cliente Faz 1 0..* Pedido Pode haver um cliente que esteja associado a vários pedidos. Pode haver um cliente que não esteja associado a pedido algum. Um pedido está associado a um, e somente um, cliente.
10 Associação Conectividade
11 Conectividades entre Classes Corresponde ao tipo de associação existentes entre classes: muitos para muitos, um para muitos e um para um. Conectividade Em um Extremo No outro Extremo Um para um Um para muitos 0..1 1 0..1 1 0..1 1 * 1..* 0..* * * Muitos para muitos 1..* 1..* 0..* 0..*
12 Conectividades entre Classes Exemplos: Empregado 1 0..1 Departamento Um para um Empregado 0..* 1 Departamento Um para muitos Empregado 0..* 1..* Departamento Muitos para muitos
13 Associação Tipos de Associação
14 Tipos de Associação Associação Binária Associações entre duas classes Mais comum Exemplo:
15 Tipos de Associação Associação Unária (ou Reflexiva) Ocorre quando uma classe relaciona com si mesmo. Exemplo:
16 Associação Exemplos de Associação em Java
17 Associação um para um em Java Pessoa 0..1 Possui 0..1 Endereco Pessoa.java public class Pessoa{ private Endereco endereco = new Endereco(); Endereco.java public class Endereco{ private Pessoa pessoa = new Pessoa();
18 Associação um para muitos em Java Pessoa 0..1 Possui 1..5 Endereco Pessoa.java public class Pessoa{ private Endereco[] enderecos = new Endereco[5]; Endereco.java public class Endereco{ private Pessoa pessoa = new Pessoa();
19 Associação um para muitos em Java Pessoa 0..1 Possui 1..* Endereco Pessoa.java public class Pessoa{ private ArrayList<Endereco> enderecos = new ArrayList<Endereco>(); Endereco.java public class Endereco{ private Pessoa pessoa = new Pessoa();
20 Associação muitos para muitos em Java Pessoa Possui 1..2 1..5 Endereco Pessoa.java public class Pessoa{ private Endereco[] enderecos = new Endereco[5]; Endereco.java public class Endereco{ private Pessoa[] pessoas = new Pessoa[2];
21 Associação muitos para muitos em Java Pessoa Pessoa.java 1..* Possui 0..* Endereco public class Pessoa{ private ArrayList<Endereco> enderecos = new ArrayList<Endereco>(); Endereco.java public class Endereco{ private ArrayList<Pessoa> pessoas = new ArrayList<Pessoa>();
22 Associação Exercícios
23 Exercício Escreva um programa em Java que implemente o Diagrama de Classes da UML apresentado abaixo.
24 Exercício Altere as classes do exercício considerando o Diagrama de Classes abaixo.
25 Mensagem entre classes Definição
26 Mensagem entre classes Objetos de classes comunicam-se entre si através de mensagens Objeto Carro Objeto Motor Método Andar() Método Ligar() Para que o Carro ande é necessário que o Motor esteja ligado!!!
27 Mensagem entre classes Uma mensagem especifica que um determinado método de um objeto precisa utilizar um ou mais métodos de outro objeto Podem ser passados objetos como parâmetros e, opcionalmente, algum resultado ou valor pode ser retornado A troca de mensagens acontece através dos métodos
28 Mensagem entre classes Para enviar uma mensagem deve-se: Identificar o objeto que receberá a mensagem Identificar o método que o objeto deverá executar Passar os argumentos requeridos pelo método
29 Mensagem entre Classes Representação Gráfica
30 Representação Gráfica Diagrama de Classes Motor - potencia: String - combustivel: String - ligado: Boolean + Motor() + GETs() + SETs() + Ligar() + Deligar() Carro - modelo: String - marca: String - motor: Motor + Carro() + GETs() + SETs() + Andar() + Parar()
31 Mensagem entre Classes Exemplo
32 Representação Gráfica Diagrama de Classes public class Carro(){ private String modelo; private Motor motor; public Carro(){ public void Andar(){ motor.ligar(); SOUT( Carro Andando... ); public void Parar(){ motor.desligar(); SOUT( Carro Parando... );
33 Representação Gráfica Diagrama de Classes public class Carro(){ private String modelo; private Motor motor; public Carro(){ public void Andar(){ motor.ligar(); SOUT( Carro Andando... ); public void Parar(){ motor.desligar(); SOUT( Carro Parando... ); Executa o Método Ligar da Classe Motor Executa o Método Desligar da Classe Motor
Linguagem de Programação II Relacionamento entre classes Prof. Alessandro Borges