2. 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.
C#
3. 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.
6. • 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.
8. • 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.
9.
10. • Os Objetos do mundo real possuem duas características:
• 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.
estadocomportamento
12. • 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?
13. • 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
14. Fazendo uma analogia, uma classe é como se fosse um
gabarito, uma
planta de uma casa.As casas seriam os objetos.
18. 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.
19. Classe B
Classe 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.
22. • Todo
pode
método definido em um ancestral
ser acessado através dos
descendentes
• O polimorfismo ocorre quando um método
definido no ancestral é redefinido no
descendente
diferente.
com um comportamento
23. • As classes fazem a mesma operação (método), mas de
forma diferente.
24. • O objeto “chamador” apenas precisa referenciar o
método.
25. • POLI (muitas) + MORPHOS (formas)
• Está estritamente relacionado com a herança.
26. • 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
• Níveis
objetos
de acesso: As Informações podem
ser Públicas ou Privadas, de acordo com
a necessidade (Information Hiding).
30. • 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
36. • 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.
37. • 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!