Linguagem de Programação IIalessandro.borges/LP_II/... · Linguagem de Programação II / Java...

Post on 14-Nov-2020

4 views 0 download

Transcript of Linguagem de Programação IIalessandro.borges/LP_II/... · Linguagem de Programação II / Java...

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