Buscar

Notas de aula - Orientação a objetos

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

Orientação a Objetos
- Parte 1 -
Saulo Cunha Campos
FAGOC
Classe
• Uma classe é um tipo de modelo abstrato. 
Ou a estrutura que determinado objeto 
deve possuir.
• As classes especificam quais 
características os objetos possuirão e 
quais comportamentos e tarefas eles 
devem exercer.
• Exemplo: Carro, Cachorro, pessoa e etc
Objeto
• Objetos nada mais são do que instancias 
da classe, ou seja, uma cópia dessa 
classe em memória.
• O objeto é um misto de dados e funções 
estruturado em uma mesma unidade.
• Exemplo: Fiat Palio, cachorrinha Mel, 
Maria e etc
Propriedades e métodos
• Cada uma das características definidas na 
classe para o objeto são conhecidas como 
propriedades (ou atributos).
• Cada uma das tarefas ou comportamentos 
definidos na classe para o objeto exercer 
são conhecidos como métodos.
• De forma simplificado as propriedades são 
variáveis que armazenam as características 
dos objetos e os métodos as funções que os 
objetos poderão acessar.
Abstração
• É o processo de extrair características 
essenciais de um objeto do mundo real. É 
necessária para ter um modelo fiel da 
realidade.
• Porém tais características essenciais 
dependem do projeto e da visão do 
projetista.
• Dessa forma, abstração também é um 
exame seletivo de determinados aspectos 
do problema
Abstração
• Princípio de ignorar os aspectos de um 
assunto não relevantes para o propósito em 
questão, tornando possível uma 
concentração maior em assuntos que são 
julgados como principais.
• Assim, em determinado problema alguns 
aspectos serão selecionados enquanto 
outros serão ignorados.
• O fato é que isso depende do projetista.
Abstração
Abstração
Defina a classe carro:
Mensagens
• É o paradigma utilizado para comunicação 
entre os objetos.
• A independência de objetos é enfatizada 
através da troca de mensagens.
• Os dados de um objeto não podem ser 
manipulados ou vistos por outro objeto, ao 
invés disso, uma mensagem é enviada ao 
objeto (encapsulamento).
Mensagens
• A mensagem especifica que um objeto A 
necessita utilizar um método do objeto B.
• As mensagens, então, não dizem como um 
método deve ser executado, mas que, 
simplesmente, um método deve ser 
executado.
Mensagem
Encapsulamento
• Encapsulamento é o ocultamento de 
informações e detalhes de 
implementação.
• O intuito é proteger os dados 
armazenados por um objeto e 
simplificar o entendimento de suas 
funções. 
Encapsulamento
A função do encapsulamento é:
– Proteger os dados armazenados de um objeto 
contra corrupções
– Esconder a complexidade da implementação, 
simplificando o entendimento das funções do 
objeto. 
• Assim o encapsulamento proíbe a 
visualização interna do objeto e a interface 
de cada classe é definida de forma a revelar 
o mínimo possível sobre o objeto.
Encapsulamento
Encapsulamento
• Somente o próprio objeto pode ter acesso a 
seus atributos.
• Ex.: Tocas fitas
• Para que um objeto utilize informações 
armazenadas em outros, o acesso aos 
atributos são transferidos para métodos 
(serviços) que são conhecidos como “gettes” 
e “settes”.
Encapsulamento
Classe Triangulo
Atributos:
- Base
- Altura
Métodos:
- GetBase
- SetBase(valor)
- GetAltura
- SetAltura(valor)
- CalcArea
Encapsulamento
1. public class Triangulo {
2. // Atributos
3. private int Base;
4. private int altura;
5.
6. // Métodos
7. public int getBase() { return this.Base; }
8. public void setBase(int Base) { this.Base = Base; }
9. public int getAltura() { return this.altura; }
10. public void setAltura(int altura) {this.altura = altura; }
11.
12. public double calcArea(){
13. return (this.Base * this.altura) / 2;
14. }
15. }
Encapsulamento
• Para manter o encapsulamento apenas métodos 
devem ser conhecidos por outros objetos. Porém 
existem alguns métodos que também devem ter 
suas visualizações restritas a própria classe.
• Assim para cada atributo e método da classe 
devem ser especificadas quais são suas 
visualizações. Podendo ser:
– Privado (private): Apenas visualização interna. Somente 
a própria a classe tem acesso.
– Público (public): Conhecível a todos os objetos. Todos 
os outros objetos tem acesso a solicitar a execução.
– Protegido (protected): Visualização disponível para a 
própria classe e para classes filhas.
Encapsulamento
Herança
• Representa a estrutura Generalização e 
Especialização (Gen-Espec), tornando 
explícitos os atributos e serviços comuns em 
uma hierarquia de classes.
Herança
• Superclasses (classe PAI): representam 
abstrações generalizadas
• Subclasses (classes FILHAS): 
representam abstrações onde variáveis de 
instância e métodos são adicionados, 
modificados ou removidos.
• “Tudo que existe no pai também existe no 
filho”
Herança
Herança
• Com o mecanismo de herança, ao se criar 
uma classe a partir de outra classe, a nova 
classe (subclasse da classe original) herda 
todas as suas características.
• Assim os atributos e métodos definidos na 
super classe são compartilhados com a 
subclasse. Na subclasse é possível definir 
novos métodos e atributos.
• Superclasses podem possuir serviços 
abstratos (virtuais), que devem ser 
implementados nas subclasses
Herança
• Dois tipos
– Simples
– Múltipla
Herança
• Herança simples:
– Subclasse herda de apenas uma superclasse
Herança
• Herança múltipla:
– Subclasse herda de mais de uma superclasse
• Principal problema: conflito de nomes
Herança
• A implementação da herança em classes 
ocorre através da utilização da palavra 
chave “extends”.
public class Aluno extends Pessoa {
}
Construtores
• Toda classe possui um método 
responsável pela sua correta 
inicialização, esse método é 
chamado de construtor.
• Em java, o método construtor 
possui o mesmo nome da 
classe e não tem retorno 
definido (nem mesmo void).
Construtores
• Nestes métodos devem ser realizadas 
inicialização de atributos, criação de objetos 
da classe, execução de rotinas iniciais, entre 
outras coisas.
• O método construtor é disparado 
automaticamente no momento em que a 
classe é instanciada.
Carro MeuCarro = new Carro();
Classes abstratas
• Existem dois tipos de classes as classes:
– Concretas: podem ser instanciadas
– Abstratas: não podem ser instanciadas
• As classes abstratas servem apenas para 
moldar (determinar) como devem ser as suas 
classes descendentes (mais especializadas).
• Uma classe concreta pode descender de uma 
classe abstrata, mas deve manter a mesma 
estrutura definida nela.
• A classe abstrata não possui implementações 
apenas declarações de métodos e atributos que 
as classes descendentes devem possuir.
Classes abstratas
• Além de classes abstratas podem existir 
métodos abstratos.
• Caso um método seja definido como abstrato 
em uma classe pai, todas as classes (filhas) 
derivadas serão obrigadas a implementar tal 
método.
• Nos métodos abstratos não possuem 
implementação de comportamento. As 
implementações terão que ser definidas 
(obrigatoriamente) nas classes descendentes.
Polimorfismo
• Polimorfismo: poli = várias, morphos = formas -
“várias formas”.
• Significa que uma mesma operação pode atuar de 
modos diferentes em classes diferentes, ou na 
mesma classe, de acordo com a situação.
• Um lavajato possui a operação (método) lavar. 
Mas a maneira de lavar um carro é diferente da 
maneira de lavar uma moto ou uma bicicleta. 
Assim a mesma operação (lavar) pode ser 
executada de maneiras diferentes dependendo do 
tipo de objeto que será lavado.
Polimorfismo
• O polimorfismo de métodos pode ocorre de 
duasformas diferentes:
– Sobrecarga
– Sobreescrita (sobreposição)
Polimorfismo - Sobrecarga
• A sobrecarga ocorre quando uma mesma 
classe possui comportamentos diferentes 
para um mesmo serviço (método), como no 
exemplo do lavajato.
• No caso da sobrecarga, o comportamento a 
ser adotado quando o método é invocado é 
definido pelos parâmetros passados.
Polimorfismo - Sobrecarga
1. public class LavaJato {
2. public void Lavar(Bicicleta E){
3. // Comportamento para lavagem da 
bicicleta
4. }
5. public void Lavar(Moto E){
6. // Comportamento para lavagem da 
moto
7. }
8. public void Lavar(Carro E){
9. // Comportamento para lavagem do 
carro
10. }
11. }
1. public class Main {
2. public static void main(String[] 
args) {
3. Moto MinhaMoto = new 
Moto();
4. Carro MeuCarro = new 
Carro();
5.
6. LavaJato jatao = new 
LavaJato();
7.
8. jatao.Lavar(MinhaMoto);
9. jatao.Lavar(MeuCarro);
10. }
11. }
Polimorfismo - Sobreescrita
• A sobreescrita de métodos envolve herança.
• Neste caso, ocorre a mudança do 
comportamento de uma ação, presente em 
uma determinada classe, sendo que tal 
ação tenha sido herdada de uma classe 
mais genérica.
• Dessa forma, um comportamento definido 
em classe mais genérica pode ser mudado 
em classes mais especializadas.
Polimorfismo - Sobreescrita
1. public class LavaJato {
2. public void Lavar(){
3. System.out.println(“Lavando...");
4. }
5. }
1. public class JavaJato_De_Motos extends LavaJato {
2. public void Lavar(){ 
3. System.out.println("Estou lavando motos de um 
jeito só meu");
4. }
5. }

Outros materiais