Sie sind auf Seite 1von 7

Agenda da Aula

 Paradigma Orientado a Objetos


 Princípios de Orientação a Objetos
Análise Orientada a Objetos – Abstração
– Encapsulamento
– Modularidade
FIR – Faculdade Integrada do Recife
– Herança
João Ferreira
– Polimorfismo
ilostmy.info
 Análise e Projeto OO

Paradigma Orientado a Objetos Paradigma Orientado a Objetos

 O que é um Paradigma?  Objetos são utilizados ao longo de todo


processo de desenvolvimento de
 Paradigma estruturado/imperativo software
– Focado em Procedimentos
 Sistemas são constituídos de objetos
que se inter-relacionam e atendem aos
requisitos do sistema

Paradigma Orientado a Objetos Paradigma Orientado a Objetos

 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

Objetos: Características Objetos: Características


 Objetos podem estar relacionados  Objetos de uma classe possuem um mesmo
– Um aluno estuda em várias turmas comportamento
– Método
• Implementação de uma operação de uma classe
 Objetos de uma classe podem • Indica o comportamento [dos objetos] de uma classe
• Serviços oferecidos por uma classe
relacionar-se entre si e com objetos de
 Exemplo
outras classes
– Alunos se matriculam em uma disciplina
– Uma turma aloca uma sala de aula
 Objetos podem não possuir comportamento

Objetos: Características Exemplo de Classe UML


 Um objeto tem um estado, exibe um
comportamento bem-definido e tem uma
identidade única.
nome da classe
atributos da classe

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

public class Livro {


String titulo;
String autor;
int paginas; serviços oferecidos
}

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

Lê-se: Lê-se: Implementam os


PessoaFisica é uma Pessoa PessoaJuridica é uma Pessoa métodos
PessoaFisica “herda” de Pessoa PessoaJuridica “herda” de Pessoa

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

Polimorfismo Orientação a Objetos


 É a capacidade de  Vantagens
objetos de classes
diferentes responderem – Modelagem usando conceitos do mundo
a uma mesma real
mensagem de maneiras – Transição suave entre etapas de
diferentes
desenvolvimento devido ao uso da
 Permite a criação de
abstração de objetos
classes com interfaces
idênticas e que têm seus – Facilidade de Reutilização e Extensão de
métodos implementados abstrações definidas para o sistema
de formas diferentes – Grande suporte de ferramentas, linguagens,
tecnologias, métodos e técnicas

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

Programação Orientada a Objetos Programação Orientada a Objetos


 Pode-se pensar nas mensagens como sendo  Envio de mensagens
chamadas a funções que pertencem a um 1. Identificar o objeto receptor
objeto em particular 2. Identificar o método a ser executado
 Ao receber uma mensagem, o objeto executa 3. Passar os argumentos requeridos pelo método
a operação especificada através da execução 4. O conjunto de mensagens que o objeto retorna
do método determina seu comportamento
 Cada objeto tem sua própria região de
 Exemplo
memória, indicada por sua identidade
– tv.ligar();
 Cada objeto tem um tipo, isto é, pertence a
– circulo.desenhar();
uma classe

Análise e Projeto OO Análise e Projeto OO


 Método de projeto de software que  É fundamental saber as respostas:
abrange as tarefas de decomposição o – Quais são as classes e objetos?
sistemas usando orientação a objetos – Quais são as interfaces destes objetos?
– Classes e Objetos
– Como os objetos interagem entre si?
– Decomposição Lógica
– Decomposição Física  O mundo real torna-se uma coleção de
 Uma notação própria precisa ser objetos relacionados
utilizada para expressar as idéias
associadas (UML)

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

Para Estudar Na Próxima Aula...


 Livro  Processo de Desenvolvimento de
– UML Guia do Usuário Software
 Internet  Modelos de Ciclos de Vida de Software

Até a próxima semana!

Das könnte Ihnen auch gefallen