• Nenhum resultado encontrado

Programação Orientada a Objetos

N/A
N/A
Protected

Academic year: 2021

Share "Programação Orientada a Objetos"

Copied!
18
0
0

Texto

(1)

Programação Orientada a Objetos

Relacionamento Entre Objetos

(2)

• Objetos não existem isolados

– São formados por outros objetos – Objetos usam outros objetos

– Um programa OO possui vários objetos que interagem entre si

– Modelagem define quais objetos usamos em um programa

2

Introdução

(3)

• Objetos possuem relacionamentos

– Composição

• Um objeto pode ser formado por outros objetos

• Casa, livro, jardim, agenda de contatos, etc

– Agregação

• Um objeto pode conter outros objetos

• Carro (motor, pneu, porta)

– Associação

• Objetos podem usar outros objetos

• Trem usa estrada de ferro

Introdução

(4)

• Um livro é composto de capítulos

– Capítulo é parte essencial de livro

• Se não existir capítulo, não existe livro

• Capítulo não existe fora de livro

• Linha com losângulo preenchido na classe

“dominante”

– Livro é composto de 1 ou mais capítulos

4

Composição

(5)

Composição

public class Livro {

private Capitulo[] capitulos;

public Livro(int qtdCapitulo){

capitulos = new Capitulo[qtdCapitulo];

} }

public class Capitulo { private Livro livro;

/* Definição da classe Capítulo */

} Os atributos são derivados dos

relacionamentos. Não existem

Referência pode ou não ser bidirecional.

Capitulo não precisa

ter o atributo livro

(6)

• Carro possui Pneu, Motor e Porta

– Não são partes essenciais do carro

• Retirando as portas um carro continua sendo um carro

• Pneus/portas existem como objetos independentes

• Linha com losângulo vazio na classe

“dominante”

6

Agregação

(7)

Agregação

public class Carro { private Motor motor;

private Porta portas[];

private Pneu pneus[];

/* ... */

}

public class Carro { private Motor motor;

private Porta portas[];

private Pneu p1, p2, p3, p4;

/* ... */

}

Pode ser implementado de mais de uma forma

public class Motor{

/* ... */

}

public class Pneu{

/* ... */

}

public class Porta{

/* ... */

(8)

• Objetos que usam outros objetos

– Podem ser implementados como atributos

8

Associação

public class Trem {

private EstradaDeFerro estradaDeFerro;

/* ... */

public void definirEstrada(EstradaDeFerro estradaDeFerro){

this.estradaDeFerro = estradaDeFerro;

}

}

(9)

• Composição, Agregação e Associação

– Mesma forma de implementar – Muda apenas o conceito

• Comportamento diferente

– Muito comum usar apenas notação da associação

• Sem o losângulo

• Composições e Agregações são “tipos” de associações

– Representam relacionamento “tem um”

• Carro “tem uma” roda

• Livro “tem um” capitulo

• Trem “tem uma” estrada de ferro

Observações

(10)

Multiplicidade

• Indica quantidade de objetos referenciados

• Principais:

– A possui exatamente 1 B – A possui vários B

– A possui 1 ou mais B – A possui 0 ou 1 B

Paulo de Tarso F. Júnior 10

(11)

Nomes

• Pode-se especificar o nome do atributo

– Obrigar existência do atributo

– Carro tem um atributo privado motor do tipo Motor

public class Carro {

private Motor motor;

/* ... */

}

(12)

Nomes

• Coleções

– Atributos com multiplicidade * podem ser implementados de mais de uma forma

– Array é uma delas

Paulo de Tarso F. Júnior 12

public class Livro {

private Capitulo cap[];

}

(13)

Exercício 01

• Desenvolver o seguinte relacionamento:

• Pessoa vai ter um objeto do tipo Endereco

• Classes com construtores parametrizados

(14)

Exercício 02

• Adicionar as seguintes classes ao relacionamento

Paulo de Tarso F. Júnior 14

(15)

Exercício 2

• A Classe Compra vai conter um objeto do tipo Pessoa e outro do tipo Produto

• É possível comprar acessando o método

comprar, passando como parâmetro dois

objetos, um do tipo Pessoa e outro do tipo

Produto

(16)

Exercício 2

• Desenvolva uma Classe de teste:

– Inicialmente, a classe deve criar 2 objetos do tipo Produto (crie os objetos com as informações que desejar)

– O usuário faz um cadastro (criando um objeto do tipo Pessoa)

– Logo após, o usuário seleciona entre os 2 produtos cadastrados anteriormente

– Dependendo da escolha, é acessado o método comprar da classe Compra, e passado como parâmetro o objeto Pessoa que ele cadastrou e o do Produto escolhido

– Logo após, é exibido no console ao usuário uma

mensagem de confirmação, exibindo o nome dele e do

produto comprado (acesso ao método verificarCompra()) e finaliza a aplicação

Paulo de Tarso F. Júnior 16

(17)

Dúvidas

(18)

Referências

• RICARTE, I. L. M.; Programação Orientada a Objetos:

Uma Abordagem com Java. UNIVERSIDADE ESTADUAL DE CAMPINAS.

• MARTINS, F. M.; JAVA6 e Programação Orientada pelos Objectos. FCA - Editora de Informática, 2015.

• Os 4 pilares da Programação Orientada a Objetos.

Disponível em: http://www.devmedia.com.br/os-4- pilares-da-programacao-orientada-a-objetos/9264.

Acesso em 15/05/2016

• Programação orientada a objetos com Java. Disponível em:

http://www.devmedia.com.br/programacao-orientada-a-

objetos-com-java-easy-java-magazine-1/18449. Acesso em 18/05/2016

18

Prof. Paulo de Tarso F. Júnior

Referências

Documentos relacionados

– Tipo de dados que o objeto armazena, ou seja, os estados possíveis que ele pode assumir (atributos) – Tipos de operações que podem ser executadas pelo. objeto, ou seja, o

para o usuário digitar um nome; pega o valor digitado e altera na variável nome do objeto da Conta Bancária, através do método Alterar Nome.. Realiza saque/depósito, e depois

– Crie um construtor parametrizado inicializando todas as variáveis com os valores recebidos dos parâmetros. – Crie um construtor default (Inicializando as variáveis da

• Diferentes componentes de um sistema não devem revelar detalhes internos de suas..

– É o processo de esconder todos os detalhes de um objeto que não contribuem para suas características

– Pode ser acessado por qualquer outra classe em qualquer outro pacote.

• Projeção de classes genéricas que podem ser especializadas em classes mais particulares3. • Classes especializadas reutilizam o código das

– Método executado depende da classe do objeto – Mesma chamada executa métodos diferentes.. • obj.metodo() vai executar método que foi definido para classe do objeto