Buscar

Aula 4 Modelo de classes de análise

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula 2 
Conceitos de Orientação a Objetos 
 
 
Prof. Johnny V. Tafur 
 
jtafur@unicarioca.edu.br 
Orientação a Objetos em Java 
• O ser humano se relaciona com o mundo através do 
conceito de objetos. 
 
 
 
• Estamos sempre identificando qualquer objeto ao 
nosso redor. 
 
 
 
• Para isso lhe damos nomes, e de acordo com suas 
características lhes classificamos em grupos, ou seja, 
classes. 
 
Orientação a Objetos em Java 
 
• Conceitos: 
– Identidade. 
– Classificação. 
– Hereditariedade. 
– Encapsulamento. 
– Polimorfismo. 
– Ligação Dinâmica. 
 
Orientação a Objetos em Java 
Classe 
Aluno 
Nome 
Matrícula 
Nota Média 
João 
193.31.098-7 
7,6 
Maria 
195.31.022-5 
8,7 
Orientação a Objetos em Java 
• Objetos do mundo real possuem duas 
características: estado e comportamento. 
 
• Exemplos: 
 cachorros  estado: nome, cor, raça 
 comportamento: latir, correr 
 Bicicletas  estado: marcha atual, velocidade atual 
 comportamento: trocar marcha, aplicar 
freios 
 
 
Orientação a Objetos em Java 
• Identificar o estado e o comportamento de objetos do 
mundo real é o primeiro passo para começar a pensar 
em programação OO. 
 
 
• Observe um objeto e pergunte: 
 
 Quais os possíveis estados que esse objeto pode estar? 
 
 Quais os possíveis comportamentos que ele pode executar? 
 
 
Orientação a Objetos em Java 
• A unidade fundamental de programação em orientação a 
objetos (POO) é a classe. 
 
• Classes contém: 
 
– Atributos: determinam o estado do objeto; 
 
– Métodos: semelhantes a procedimentos em 
linguagens convencionais, são utilizados para 
manipular os atributos(operações). 
 
Orientação a Objetos em Java 
• As classes provêem a estrutura para a construção de 
objetos - estes são ditos instâncias das classes 
Classe 
Aluno 
Nome 
Matrícula 
Nota Média 
setNome(nome) 
getNome() 
... 
atributos 
métodos 
Instâncias 
João 
193.31.098-7 
7,6 
Maria 
195.31.022-5 
8,7 
Orientação a Objetos em Java 
• Objetos 
 
– São instâncias da classe. 
– Sob o ponto de vista da programação orientada a 
objetos, um objeto não é muito diferente de uma 
variável normal. 
 
• Um programa orientado a objetos é composto 
por um conjunto de objetos que interagem entre 
si 
 
Orientação a Objetos em Java 
• Objetos 
 
– Objetos de software são conceitualmente similares a objetos do 
mundo real: eles consistem do estado e o comportamento 
relacionado. 
 
– Um objeto armazena seu estado em campos (variáveis) e expõe 
seu comportamento através de métodos (funções). 
 
– Encapsulamento: princípio de projeto pelo qual cada componente de 
um programa deve agregar toda a informação relevante para sua 
manipulação como uma unidade (uma cápsula). 
 
– Ocultação da Informação: princípio pelo qual cada componente deve 
manter oculta sob sua guarda uma decisão de projeto única. Para 
a utilização desse componente, apenas o mínimo necessário para sua 
operação deve ser revelado (tornado público) 
Orientação a Objetos em Java 
Bicicleta 
Marcha atual 
Velocidade atual 
 
mudarMarcha() 
mudarVelocidade() 
... 
 campos 
(atributos) 
métodos 
Instâncias 
3ª 
20 km/h 
Bibicleta A 
7ª 
35 km/h 
Bibicleta B 
Orientação a Objetos em Java 
Bibicleta B 
7º 
35 km/h 
Métodos operam no estado interno de um objeto e servem 
como mecanismo de comunicação entre objetos. 
João 
João 
30 anos 
mudarMarcha 
Orientação a Objetos em Java – 
Classes x Objetos 
Documento 
Autor 
DataDeChegada 
Imprimir 
Editar 
 
OB1: Documento OB2: Documento 
CLASSE 
Atributos 
Funções 
Orientação a Objetos em Java – 
Classe em Java 
 Qualificador_de_acesso class Nome_Da_Classe 
 { 
 // atributos da classe 
 // métodos da classe 
 } 
 
// Class Lampada 
public class Lampada 
{ 
// Atributos 
boolean acesa; 
// Métodos 
public void ligar() 
{ acesa = true; } 
public void desligar() 
{ acesa = false; } 
} 
Orientação a Objetos em Java – 
Classe em Java 
class Bicicleta { 
 int velocidade = 0; 
 int marcha = 1; 
 void mudarMarcha(int novoValor) { 
 marcha = novoValor; 
 } 
 void aumentarVelocidade(int incremento) { 
 velocidade = velocidade + incremento; 
 } 
 void aplicarFreios(int decremento) { 
 velocidade = velocidade - decremento; 
 } 
} 
Orientação a Objetos em Java – 
Criando objetos com Java 
• Para instanciarmos um novo objeto devemos utilizar o operador 
new, conforme modelo abaixo: 
 
NomeDaClasse nomeDoObjeto = new NomeDaClasse(); 
Lampada lamp1 = new Lampada(); 
Lampada lamp2 = new Lampada(); 
 
• Criando dois objetos bicicleta: 
Bicicleta bicicleta1 = new Bicicleta(); 
Bicicleta bicicleta2 = new Bicicleta(); 
 
• Invocando seus métodos: 
bicicleta1.mudarMarcha(2); 
bicicleta2.aumentaVelocidade(5); 
Orientação a Objetos em Java – 
Resumo 
 
• A classe provê a estrutura para a construção de objetos. 
 
 
• Um objeto é uma instância de uma classe. Ele contém um estado 
(valores de seus atributos) e expõe o seu comportamento através de 
métodos (funções). 
 
 
• Ex. Bicicleta: ESTADO – valores dos atributos velocidade e marcha; 
COMPORTAMENTO – exposto pelos métodos mudarMarcha, 
aumentarVelocidade e aplicarFreios. 
Orientação a Objetos em Java – 
Resumo 
 
• É um princípio fundamental da OO: 
 
– Esconder o estado interno (valores dos atributos). 
 
– Obrigar que interações com os atributos sejam executadas 
através de métodos. 
 
 
• Com o encapsulamento um objeto determina a permissão 
que outros objetos terão para acessar seus atributos 
(estado). 
Orientação a Objetos em Java – 
Encapsulamento dos Dados 
Proteger os 
atributos 
Permitir acesso 
aos atributos 
através dos 
métodos 
Exemplo (classe ContaBancária) 
Associações 
• Para representar o fato de que objetos podem se 
relacionar uns com os outros, utilizamos 
associações. 
• Uma associação representa relacionamentos 
(ligações) que são formados entre objetos 
durante a execução do sistema. 
• Note que, embora as associações sejam 
representadas entre classes do diagrama, tais 
associações representam ligações possíveis 
entre os objetos das classes envolvidas. 
Notação para Associações 
• Na UML associações são representadas por uma 
linha que liga as classes cujos objetos se 
relacionam. 
• Exemplos: 
Multiplicidades 
• Representam a informação dos limites inferior e 
superior da quantidade de objetos aos quais 
outro objeto pode se associar. 
• Cada associação em um diagrama de classes 
possui duas multiplicidades, uma em cada 
extremo da linha de associação. 
Exemplos (Multiplicidades) 
• Exemplo 
• 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. 
Exemplos (Multiplicidades) 
• Exemplo 
• Uma corrida está associada a, no mínimo, dois 
velocistas 
• Uma corrida está associada a, no máximo, seis 
velocistas. 
• Um velocista pode estar associado a várias corridas. 
Acessórios para Associações 
• Para melhor esclarecer o significado de uma associação 
no diagrama de classes, a UML define três recursos de 
notação: 
• Nome da associação: fornece algumsignificado 
semântico a mesma. 
• Direção de leitura: indica como a associação deve ser 
lida 
• Papel: para representar um papel específico em uma 
associação. 
Classe associativa 
• É uma classe que está ligada a uma associação, em vez 
de estar ligada a outras classes. 
• É normalmente necessária quando duas ou mais classes 
estão associadas, e é necessário manter informações 
sobre esta associação. 
• Uma classe associativa pode estar ligada a associações 
de qualquer tipo de conectividade. 
• Sinônimo: classe de associação 
Notação para Classes Associativas 
• Notação é semelhante à utilizada para classes ordinárias. 
A diferença é que esta classe é ligada a uma associação 
por uma linha tracejada. 
• Exemplo: para cada par de objetos [pessoa, empresa], há 
duas informações associadas: salário e data de 
contratação. 
Associações n-árias 
• Define-se o grau de uma associação como a quantidade 
de classes envolvidas na mesma. 
• Na notação da UML, as linhas de uma associação n-ária 
se interceptam em um losango. 
• Na grande maioria dos casos práticos de modelagem, as 
associações normalmente são binárias. 
• Quando o grau de uma associação é igual a três, 
dizemos que a mesma é ternária. 
• Uma associação ternária são uma caso mais comum (menos 
raro) de associação n-ária (n = 3). 
Exemplo (associação ternária) 
• Na notação da UML, as linhas de uma associação n-ária 
se interceptam em um losango nomeado. 
• Notação similar ao do Modelo de Entidades e 
Relacionamentos 
Associações reflexivas 
• Tipo especial de associação que representa ligações 
entre objetos que pertencem a uma mesma classe. 
• Não indica que um objeto se associa a ele próprio. 
• Quando se usa associações reflexivas, a definição de 
papéis é importante para evitar ambiguidades na leitura 
da associação. 
• Cada objeto tem um papel distinto na associação. 
Agregações e Composições 
• A semântica de uma associação corresponde ao seu 
significado, ou seja, à natureza conceitual da relação que 
existe entre os objetos que participam daquela 
associação. 
• De todos os significados diferentes que uma associação 
pode ter, há uma categoria especial de significados, que 
representa relações todo-parte. 
• Uma relação todo-parte entre dois objetos indica que um 
dos objetos está contido no outro. Podemos também 
dizer que um objeto contém o outro. 
• A UML define dois tipos de relacionamentos todo-parte, a 
agregação e a composição. 
Agregações e Composições 
• Algumas particularidades das agregações/composições: 
• são assimétricas, no sentido de que, se um objeto A é parte de 
um objeto B, o objeto B não pode ser parte do objeto A. 
• propagam comportamento, no sentido de que um 
comportamento que se aplica a um todo automaticamente se 
aplica às suas partes. 
• as partes são normalmente criadas e destruídas pelo todo. Na 
classe do objeto todo, são definidas operações para adicionar 
e remover as partes. 
• Se uma das perguntas a seguir for respondida com um 
sim, provavelmente há uma agregação onde X é todo e Y 
é parte. 
• X tem um ou mais Y? 
• Y é parte de X? 
Agregações e Composições 
Uma equipe é formado por Jogadores, ou seja, os Jogadores são parte integrante de uma 
Equipe, mas os Jogadores existem independentemente da equipe existir. Nesse caso, 
chamamos esse relacionamento de AGREGAÇÃO. 
Agregações e Composições 
• As diferenças entre a agregação e composição não são bem 
definidas. A seguir, as diferenças mais marcantes entre elas. 
• Destruição de objetos 
• Na agregação, a destruição de um objeto todo não implica 
necessariamente na destruição do objeto parte. 
• Pertinência 
• Na composição, os objetos parte pertencem a um único todo. 
• Por essa razão, a composição é também denominada agregação 
não compartilhada. 
• Em uma agregação, pode ser que um mesmo objeto participe 
como componente de vários outros objetos. 
• Por essa razão, a agregação é também denominada agregação 
compartilhada. 
Conceitos de Orientação a Objetos

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes