linguagem de programação iialessandro.borges/lp_ii/... · linguagem de programação ii / java...
Post on 14-Nov-2020
4 Views
Preview:
TRANSCRIPT
Linguagem de Programação II / Java – Relacionamento entre classes
Linguagem de Programação II
Relacionamento entre classes
Prof. Alessandro Borges
Linguagem de Programação II / Java – Relacionamento entre classes
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
2
Linguagem de Programação II / Java – Relacionamento entre classes
Associação
Definição3
Linguagem de Programação II / Java – Relacionamento entre classes
É 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.
Relacionamento entre Classes –
Associação
4
Linguagem de Programação II / Java – Relacionamento entre classes
Exemplos
Cliente Produto
ContaCorrente HistoricoTransações
Compra
Possui
Relacionamento entre Classes –
Associação
5
Linguagem de Programação II / Java – Relacionamento entre classes
Associação
Cardinalidade / Multiplicidade6
Linguagem de Programação II / Java – Relacionamento 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 EmpresaTrabalha na
1..* 0..*
MultiplicidadeMultiplicidade
Cardinalidade / Multiplicidade entre
Classes
7
Linguagem de Programação II / Java – Relacionamento entre classes
Exemplos:
Cliente Pedido1 0..*
Cardinalidade / Multiplicidade entre
Classes8
Faz
Linguagem de Programação II / Java – Relacionamento entre classes
Exemplos:
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.
Cliente Pedido1 0..*
Cardinalidade / Multiplicidade entre
Classes9
Faz
Linguagem de Programação II / Java – Relacionamento entre classes
Associação
Conectividade10
Linguagem de Programação II / Java – Relacionamento 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 um0..1
1
0..1
1
Um para muitos0..1
1
*
1..*
0..*
Muitos para muitos
*
1..*
0..*
*
1..*
0..*
Conectividades entre Classes11
Linguagem de Programação II / Java – Relacionamento entre classes
Exemplos:
Empregado Departamento
1 0..1
Um para um
Empregado Departamento
0..* 1
Um para muitos
Empregado Departamento
0..* 1..*
Muitos para muitos
Conectividades entre Classes12
Linguagem de Programação II / Java – Relacionamento entre classes
Associação
Tipos de Associação13
Linguagem de Programação II / Java – Relacionamento entre classes
Associação Binária
Associações entre duas classes
Mais comum
Exemplo:
Tipos de Associação14
Linguagem de Programação II / Java – Relacionamento entre classes
Associação Unária (ou Reflexiva)
Ocorre quando uma classe relaciona com si mesmo.
Exemplo:
Tipos de Associação15
Linguagem de Programação II / Java – Relacionamento entre classes
Associação
Exemplos de Associação em Java16
Linguagem de Programação II / Java – Relacionamento entre classes
Pessoa.java
Endereco.java
Pessoa EnderecoPossui
0..1
Associação “um para um” em Java17
public class Pessoa{
private Endereco endereco = new Endereco();
}
public class Endereco{
private Pessoa pessoa = new Pessoa();
}
0..1
Linguagem de Programação II / Java – Relacionamento entre classes
Pessoa.java
Endereco.java
Pessoa EnderecoPossui
1..5
Associação “um para muitos” em Java18
0..1
public class Pessoa{
private Endereco[] enderecos = new Endereco[5];
}
public class Endereco{
private Pessoa pessoa = new Pessoa();
}
Linguagem de Programação II / Java – Relacionamento entre classes
Pessoa.java
Endereco.java
Pessoa EnderecoPossui
1..*
Associação “um para muitos” em Java19
public class Pessoa{
private ArrayList<Endereco> enderecos =
new ArrayList<Endereco>();
}
public class Endereco{
private Pessoa pessoa = new Pessoa();
}
0..1
Linguagem de Programação II / Java – Relacionamento entre classes
Pessoa.java
Endereco.java
Associação “muitos para muitos” em
Java
20
public class Pessoa{
private Endereco[] enderecos = new Endereco[5];
}
public class Endereco{
private Pessoa[] pessoas = new Pessoa[2];
}
Pessoa EnderecoPossui
1..51..2
Linguagem de Programação II / Java – Relacionamento entre classes
Pessoa.java
Endereco.java
Pessoa EnderecoPossui
0..*
Associação “muitos para muitos” em
Java
21
public class Pessoa{
private ArrayList<Endereco> enderecos =
new ArrayList<Endereco>();
}
public class Endereco{
private ArrayList<Pessoa> pessoas =
new ArrayList<Pessoa>();
}
1..*
Linguagem de Programação II / Java – Relacionamento entre classes
Associação
Exercícios22
Linguagem de Programação II / Java – Relacionamento entre classes
Exercício
Escreva um programa em Java que implemente o Diagrama de
Classes da UML apresentado abaixo.
23
Linguagem de Programação II / Java – Relacionamento entre classes
Exercício
Altere as classes do exercício considerando o Diagrama de
Classes abaixo.
24
Linguagem de Programação II / Java – Relacionamento entre classes
Mensagem entre classes
Definição25
Linguagem de Programação II / Java – Relacionamento entre classes
Mensagem entre classes
Objetos de classes comunicam-se entre si através de
mensagens
26
Objeto Carro
Método Andar()
Objeto Motor
Método Ligar()
Para que o Carro ande é necessário que o Motor esteja ligado!!!
Linguagem de Programação II / Java – Relacionamento entre classes
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
27
Linguagem de Programação II / Java – Relacionamento entre classes
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
28
Linguagem de Programação II / Java – Relacionamento entre classes
Mensagem entre Classes
Representação Gráfica29
Linguagem de Programação II / Java – Relacionamento entre classes
Representação Gráfica
Diagrama de Classes
30
Carro
- modelo: String
- marca: String
- motor: Motor
+ Carro()+ GETs()
+ SETs()
+ Andar()
+ Parar()
Motor
- potencia: String
- combustivel: String
- ligado: Boolean
+ Motor()+ GETs()
+ SETs()
+ Ligar()
+ Deligar()
Linguagem de Programação II / Java – Relacionamento entre classes
Mensagem entre Classes
Exemplo31
Linguagem de Programação II / Java – Relacionamento entre classes
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...”);
}
}
32
Linguagem de Programação II / Java – Relacionamento entre classes
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
Executa o Método
‘Ligar’ da Classe ‘Motor’
Executa o Método
‘Desligar’ da Classe ‘Motor’
Linguagem de Programação II / Java – Relacionamento entre classes
Linguagem de Programação II
Relacionamento entre classes
Prof. Alessandro Borges
top related