conceitos de orientação a objetos
DESCRIPTION
O objetivo desta apresentação é fornecer conceitos introdutórios sobre Orientação a Objetos que podem servir de base para o aprendizado de qualquer linguagem de programação com suporte para esse paradigma.TRANSCRIPT
![Page 1: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/1.jpg)
Conceitos de Orientação a Objetos
Compilado com base nas referências por
José Augusto Cintra
Professor da Faculdade Sumaré – SP
Analista de TI da Empresa PRODAM – SP
htttp://www.html-apps.info
![Page 2: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/2.jpg)
Introdução
O objetivo desta apresentação é fornecer conceitos introdutórios
sobre Orientação a Objetos que podem servir de base para o
aprendizado de qualquer linguagem de programação com suporte
para esse paradigma.
![Page 3: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/3.jpg)
Paradigmas de Programação
Todo programa de computador é composto de dois elementos principais:
Na programação tradicional (programação estruturada) dados e operações são tratados separadamente, no que chamamos de programação procedural ou programação orientada a procedimentos.
Já, a programação orientada a objetos é um novo paradigma em que dados e operações são tratados em uma única unidade de programação chamada de OBJETO.
![Page 4: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/4.jpg)
Programação Estruturada
Processamento
(Operações)
Dados
Dados
Dados
![Page 5: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/5.jpg)
Programação Orientada a Objetos
![Page 6: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/6.jpg)
Orientação a Objetos
Orientação à objetos é uma estratégia para organizar
sistemas como coleções de objetos que interagem
entre si e combinam dados e operações
Objeto é uma entidade que combina estrutura de dados e
comportamento funcional
Estamos sempre identificando qualquer objeto ao nosso redor.
Para isso os classificamos em grupos, de acordo com suas
características, ou seja, separamos os objetos em classes.
Esses objetos se relacionam uns com os outros, podendo
compartilhar dados e operações comuns.
![Page 7: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/7.jpg)
Princípios da OO
• Abstração
• Classes,objetos,atributos e métodos
• Encapsulamento
• Hereditariedade
• Polimorfismo
![Page 8: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/8.jpg)
Abstração
• Ato de separar um ou mais elementos de uma
totalidade complexa, os quais só mentalmente
podem ser separados
• Ignorar aspectos não relevantes
• É a capacidade de focalizar o essencial e ignorar detalhes
acidentais não relacionados com o objetivo estabelecido.
![Page 9: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/9.jpg)
Abstração
![Page 10: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/10.jpg)
Classes, Objetos, Atributos e Métodos
• Os Objetos do mundo real possuem duas características: estado e comportamento.
• Exemplos:
Aluno
Estado: Nome, RA, Notas, Etc.
Comportamento: Calcular Média, Verificar Situação, Etc.
Bicicletas
Estado: Marcha atual, velocidade atual, Etc.
Comportamento: Trocar marcha, freiar, Etc.
Conta Corrente
Estado: Saldo, Correntista, Etc.
Comportamento: Sacar, Depositar, Etc.
![Page 11: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/11.jpg)
Classes, Objetos, Atributos e Métodos
Exemplos de Objetos
Objeto Automóvel:
Opala placa XYZ-9999 Objeto Pessoa:
Gisele Bündchen
Objeto Aluno:
João
Nota: 10
![Page 12: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/12.jpg)
• 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? Ou seja,
quais são os atributos ou propriedades ou dados que ele
apresenta e pode armazenar?
• Quais os possíveis comportamentos que ele pode executar? Ou
seja, quais as operações que podemos realizar com esses dados?
Classes, Objetos, Atributos e Métodos
![Page 13: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/13.jpg)
• 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: são as operações, os comportamentos disponíveis para
manipular os atributos
Classes, Objetos, Atributos e Métodos
![Page 14: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/14.jpg)
Fazendo uma analogia, uma classe é como se fosse um gabarito, uma
planta de uma casa. As casas seriam os objetos.
Classes, Objetos, Atributos e Métodos
![Page 15: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/15.jpg)
• 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
Notas
calcularMedia()
verificarSituacao()
...
Instâncias
João
193.31.098-7
7,5
Maria
195.31.022-5
8,7
atributos
métodos
Classes, Objetos, Atributos e Métodos
![Page 16: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/16.jpg)
Classes, Objetos, Atributos e Métodos
![Page 17: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/17.jpg)
Classes, Objetos, Atributos e Métodos
![Page 18: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/18.jpg)
Herança
Mecanismo simples e poderoso do paradigma OO que permite que uma
nova classe seja descrita a partir de uma classe já existente.
Herança é um mecanismo que permite a uma classe herdar todo o
comportamento e os atributos de outra classe
Classe mãe: superclasse, classe base
Classe filha: subclasse, classe derivada
Classe filha (mais específica) herda atributos e métodos da classe
mãe (mais geral)
Classe filha possui atributos e métodos próprios.
![Page 19: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/19.jpg)
Mecanismo da Herança
Entre uma classe e a sua superclasse, é estabelecida
uma relação de especialização que estabelece as
seguintes propriedades entre uma subclasse B e a sua
superclasse A:
1. B herda de A todas as variáveis e métodos de
instância (exceto os privados)
2. B pode definir novas variáveis e novos métodos
próprios.
3. B pode redefinir variáveis e métodos herdados.
Classe A
Classe B
![Page 20: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/20.jpg)
Herança – Exemplo
Pessoa nome
endereço comer
dormir
Estudante
RA
Notas matricular
Calcular Média
Trabalhador
RF
Salário
Registrar
Calcular Salário
superclasse
(mais genérica)
subclasse
(mais específica)
subclasse
(mais específica)
gen
eralização
•2 atributos
•2 operações
•3 atributos
•4 operações
•4 atributos
•4 operações
especialização
![Page 21: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/21.jpg)
Herança – Hierarquia
transporte
terrestre aéreo
carro avião OVNI
carro luxo
![Page 22: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/22.jpg)
• Todo método definido em um ancestral
pode ser acessado através dos
descendentes
• O polimorfismo ocorre quando um método
definido no ancestral é redefinido no
descendente com um comportamento
diferente.
Polimorfismo
![Page 23: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/23.jpg)
• As classes fazem a mesma operação (método), mas de forma
diferente.
Polimorfismo
![Page 24: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/24.jpg)
• O objeto “chamador” apenas precisa referenciar o método.
Polimorfismo
![Page 25: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/25.jpg)
• POLI (muitas) + MORPHOS (formas)
• Está estritamente relacionado com a herança.
Polimorfismo
![Page 26: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/26.jpg)
• Ocultar aspectos não relevantes
• Os dados e operações em uma única entidade
(objeto).
• Benefícios:
• Permite alterações sem afetar demais
partes do sistema.
• Modularidade - O código é independente de
outros objetos
• Níveis de acesso: As Informações podem
ser Públicas ou Privadas, de acordo com
a necessidade (Information Hiding).
Encapsulamento
![Page 27: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/27.jpg)
Encapsulamento
![Page 28: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/28.jpg)
• Esconde a implementação interna da especificação externa
• Clientes conhecem somente a interface
• Clientes dependem da interface e não da implementação
Encapsulamento
parar()
pausar()
avancar()
voltar() alterarHora()
tocar() carregarDisco()
![Page 29: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/29.jpg)
• Mecanismo para organizar elementos em grupos
• Essencial para estruturar sistemas complexos
Encapsulamento - Pacotes
Utilitários Cadastros Básicos
Contabilização
![Page 30: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/30.jpg)
Encapsulamento - Visibilidade
• Com o encapsulamento um objeto determina a permissão que outros
objetos terão para acessar seus membros(atributos e métodos)
• Alguns graus de visibilidade:
• Pública: acessível a todo o sistema
• Privada: acessível somente dentro da classe
• Protegida: acessível dentro da classe e suas especializações (herança)
• Pacote: acessível às classes de um mesmo pacote
![Page 31: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/31.jpg)
visibilidade pública
Encapsulamento - Visibilidade
![Page 32: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/32.jpg)
visibilidade privada
Encapsulamento - Visibilidade
![Page 33: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/33.jpg)
visibilidade protegida
Encapsulamento - Visibilidade
![Page 34: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/34.jpg)
visibilidade de pacote
Encapsulamento - Visibilidade
![Page 35: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/35.jpg)
Classe A e B metodo2
Classe B e D metodo1
Classe B atributo2
Todas as classes atributo1
Acesso Membros
Encapsulamento - Visibilidade
![Page 36: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/36.jpg)
Porque programar OO?
• Permite alta reutilização de código;
• Reduz tempo de manutenção de código;
• Reduz complexidade através da melhoria do grau de abstração do
sistema;
• Aumenta qualidade e produtividade oferece maiores facilidades ao
desenvolvedor;
• Adoção (aceitação) comercial crescente.
![Page 37: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/37.jpg)
Armadilhas
• Pensar no paradigma OO simplesmente como uma
linguagem;
• Programar sem planejar;
• Pensar na OO como uma solução para tudo;
• Programação Egoísta:
• É preciso documentar!
![Page 38: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/38.jpg)
Referências
http://webx.sefaz.al.gov.br/posEngSoft/documentos/moo/2-OO.ppt
http://www.joinville.udesc.br/portal/professores/parra/materiais/introducao_OO_2.ppt
http://www.datainfo.inf.br/marcio/download/aoo/aoo.ppt
http://www.ic.uff.br/~anselmo
![Page 39: Conceitos de Orientação a Objetos](https://reader034.vdocuments.net/reader034/viewer/2022052301/5590acd61a28abad2a8b46ef/html5/thumbnails/39.jpg)
apresentacao.close()