View
556
Download
3
Category
Preview:
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.
Citation preview
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
jose.cintra@html-apps.info
htttp://www.html-apps.info
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.
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.
Programação Estruturada
Processamento
(Operações)
Dados
Dados
Dados
Programação Orientada a Objetos
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.
Princípios da OO
• Abstração
• Classes,objetos,atributos e métodos
• Encapsulamento
• Hereditariedade
• Polimorfismo
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.
Abstração
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.
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
• 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
• 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
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
• 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
Classes, Objetos, Atributos e Métodos
Classes, Objetos, Atributos e Métodos
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.
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
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
Herança – Hierarquia
transporte
terrestre aéreo
carro avião OVNI
carro luxo
• 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
• As classes fazem a mesma operação (método), mas de forma
diferente.
Polimorfismo
• O objeto “chamador” apenas precisa referenciar o método.
Polimorfismo
• POLI (muitas) + MORPHOS (formas)
• Está estritamente relacionado com a herança.
Polimorfismo
• 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
Encapsulamento
• 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()
• Mecanismo para organizar elementos em grupos
• Essencial para estruturar sistemas complexos
Encapsulamento - Pacotes
Utilitários Cadastros Básicos
Contabilização
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
visibilidade pública
Encapsulamento - Visibilidade
visibilidade privada
Encapsulamento - Visibilidade
visibilidade protegida
Encapsulamento - Visibilidade
visibilidade de pacote
Encapsulamento - Visibilidade
Classe A e B metodo2
Classe B e D metodo1
Classe B atributo2
Todas as classes atributo1
Acesso Membros
Encapsulamento - Visibilidade
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.
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!
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
apresentacao.close()
Recommended