Buscar

Aula 2 Classes e Objetos - CONCEITO DE ORIENTAÇÃO A OBJETOS - UNICARIOCA

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 algum significado 
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 deassociaçã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