Beruflich Dokumente
Kultur Dokumente
Objeto
– Possui atributos (armazena dados), é uma
Orientado a Objetos
Funções ou Procedimentos
variável?
– Possui comportamento, é um método?
Sistema
Então…
Adicionar Adicionar Adicionar – Cada objeto tem um papel específico para
Aluno Disciplina Turma
realizar serviços e ações em um sistema
1
Objetos: Características Objetos: Características
Cada objeto pertence a uma classe que Objetos de uma classe têm atributos
define suas características e seu – Propriedade/característica de um objeto
comportamento – Definem o estado de um objeto
Exemplo
– Uma disciplina tem um nome, uma ementa
– Um aluno tem um nome, um endereço
– Uma turma tem uma sala de aula, um
professor
Classe = molde
Objeto = concretização
método da classe
2
Abstração
É o processo de generalização através
da remoção de informação de um
conceito. O objetivo é manter apenas as
Princípios básicos de OO informações relevantes ao contexto
desejado
Abstração Encapsulamento
Separa especificação e implementação
de uma operação ou serviço
Geralmente não interessa a quem usa o
objeto conhecer os detalhes da
livro
implementação
Encapsulamento Encapsulamento
O criador da interface expõe o mínimo da A classe comporta-se como uma “caixa-
interface para o cliente, por quê? preta”.
– Alterar a implementação sem afetar o – Não é necessário conhecer como funciona
cliente internamente
– Com acesso total a implementação, o – Apenas como utilizá-la
cliente poderia alterar a integridade do
objeto
• ex: valores de atributos poderiam ser alterados
serviços oferecidos
3
Encapsulamento X Abstração Encapsulamento
“Abstração e encapsulamento são A interface não expõe obrigatoriamente
conceitos complementares: abstração todos os seus métodos, mas apenas
foca no comportamento observável de aqueles que podem ser acessados por
um objeto, encapsulamento foca na outros objetos.
implementação que representa esse Público
comportamento.” – Método exposto
Booch, 1994 Privado
– Método não acessível por outros objetos
Modularidade Modularidade
É a decomposição de um problema “É a propriedade de um sistema ser
complexo em problemas menores e mais decomposto em um conjunto de
simples módulos.”
“Dividir para conquistar!” [Booch, 1994]
Alta coesão das classes
Herança Herança
“É um tipo especial de” Herança de implementação
Hierarquização de abstrações – Classes abstratas com alguma
implementação são usadas para fatorar
Mecanismo para permitir reuso e
código comum
extensibilidade
Herança de tipo
Uma subclasse herda a estrutura e o
– Classes puramente abstratas definem uma
comportamento da sua superclasse interface (tipo abstrato de dados)
4
Herança de Implementação Herança de Tipo
Interface, apenas
superclasse
define o contrato
(generalização)
subclasses
Herança Herança
Benefícios Problema
– Captura o que é comum e isola o que é – O encapsulamento entre classes e
diferente subclasses é fraco (o acoplamento é forte)
– A herança pode ser vista diretamente no – Alterações na superclasse podem afetar
código todas as subclasses
• Viola o princípio de manter fraco o acoplamento
– A estrutura não pode sofrer alterações
facilmente em tempo de execução
5
Orientação a Objetos Programação Orientada a Objetos
Desvantagens Um programa OO é um conjunto de
– O uso correto requer experiência e tempo objetos enviando e recebendo
inicial para aprendizado mensagens entre si
– O foco deve ser: alta coesão e baixo Uma mensagem é uma requisição
acoplamento enviada de um objeto (cliente/emissor)
para que outro (fornecedor/receptor)
realize uma operação
– Assim como os objetos do mundo real, os
objetos respondem a estímulos recebidos
6
Exemplo Resumo
Em um sistema bancário, quais seriam Paradigma Orientado a Objetos
possíveis classes? Princípios de Orientação a Objetos
– Conta Corrente – Abstração
– Conta Poupança – Encapsulamento
– Cliente – Modularidade
– Agência – Herança
– Cheque – Polimorfismo
– Extrato Análise e Projeto OO