Adélia Barros
O Paradigma de Orientação a Objetos
Paradigma? Um paradigma é uma forma de abordar um
problema. No contexto da modelagem de um sistema de
software, um paradigma tem a ver com a forma pela qual esse sistema é entendido e construído.
A primeira abordagem usada para modelagem de sistemas de software foi o paradigma estruturado.◦ Uso da técnica de decomposição funcional◦ “divida sucessivamente um problema complexo em
subproblemas”
O paradigma da orientação a objetos visualiza um sistema de software como uma coleção de agentes interconectados chamados objetos. Cada objeto é responsável por realizar tarefas específicas. É através da interação entre objetos que uma tarefa computacional é realizada.
Conceitos e Princípios da OO Conceitos
◦ Abstração◦ Classe◦ Objeto◦ Mensagem
Princípios◦ Encapsulamento◦ Modularidade◦ Polimorfismo◦ Generalização (Herança)◦ Composição
Abstração Abstração:
◦ É o mecanismo que nos permite representar uma realidade complexa em termos de um modelo simplificado.
◦ Processo de filtragem de detalhes sem importância do objeto, para que apenas as características apropriadas que o descrevem permaneçam.
Abstração
Abstração Três abstrações de um carro:
Classes, objetos e mensagens O mundo real é formado de coisas. Na terminologia de orientação a objetos, estas coisas do
mundo real são denominadas objetos. Seres humanos costumam agrupar os objetos para
entendê-los. A descrição de um grupo de objetos é denominada classe
de objetos, ou simplesmente de classe.
Objetos Características
◦ Dados representam características◦ São chamados atributos
Comportamento◦ Operações definem comportamento◦ São os métodos de um objeto◦ São as funções que são executadas em um objeto
Estado Representado pelos valores dos atributos de um
objeto Estado representa o resultado cumulativo de seu
comportamento
Objetos Objetos possui atributos:
Objetos E os objetos possuem comportamento:
O que é uma classe? Uma classe é um molde para
objetos. Diz-se que um objeto é uma instância de uma classe.
Uma classe é uma abstração das características relevantes de um grupo de coisas do mundo real.◦ Na maioria das vezes, um grupo de
objetos do mundo real é muito complexo para que todas as suas características e comportamento sejam representados em uma classe.
Cliente
Representante
Produto
Classes Classes:
Classes
Classe é onde conceituamos o objeto◦ É a essência do objeto◦ Define os atributos e métodos
Objeto é uma instância de uma classe Objetos semelhantes pertencem a mesma
classe
Classes
Classe Lampada◦ Atributos◦ potencia (int), ligada(boolean)
Operações◦ ligar, desligar, estaLigada
Classe X Objeto
Objetos são abstrações de entidades que existem no mundo real.
Classes são definições estáticas, que possibilitam o entendimento de um grupo de objetos.
CUIDADO: estes dois termos muitas vezes são usados indistintamente em textos sobre orientação a objetos.
Classe X Objeto Classes:
◦ Exemplos: Pessoa é uma CLASSE;
João é um OBJETO (instância) da CLASSE Pessoa;
Carro é uma CLASSE;
Meu carro é um OBJETO da CLASSE Carro.
◦ Objetos similares são agrupados em classes.
Classes
Mensagens Para que um objeto realize alguma tarefa,
deve haver um estímulo enviado a este objeto.
Pense em um objeto como uma entidade ativa que representa uma abstração de algo do mundo real◦ Então faz sentido dizer que tal objeto pode responder
a estímulos a ele enviados◦ Assim como faz sentido dizer que seres vivos reagem
a estímulos que eles recebem.
Mensagens Independentemente da origem do estímulo,
quando ele ocorre, diz-se que o objeto em questão está recebendo uma mensagem.
Uma mensagem é uma requisição enviada de um objeto a outro para que este último realize alguma operação.
Mensagens• Objetos de um sistema trocam mensagens
– isto significa que estes objetos estão enviando mensagens uns aos outros com o objetivo de realizar alguma tarefa dentro do sistema no qual eles estão inseridos.
Mensagens
Após a execução, o controle volta para o objeto que enviou a mensagem.
Encapsulamento
Objetos possuem comportamento.◦ O termo comportamento diz
respeito a que operações são realizadas por um objeto e também de que modo estas operações são executadas.
De acordo com o encapsulamento, objetos devem “esconder” a sua complexidade...
24
Encapsulamento
O encapsulamento é uma forma de restringir o acesso ao comportamento interno de um objeto◦ Um objeto que precise da colaboração de outro
para realizar alguma tarefa simplesmente envia uma mensagem a este último
◦ O método (maneira de fazer) que o objeto requisitado usa para realizar a tarefa não é conhecido dos objetos requisitantes
25
Encapsulamento Na terminologia da orientação a objetos, diz-se
que um objeto possui uma interface◦ A interface de um objeto é o que ele conhece e o que ele
sabe fazer, sem descrever como o objeto conhece ou faz◦ A interface de um objeto define os serviços que ele pode
realizar e conseqüentemente as mensagens que ele recebe
Máquina de Refrigeranteem lata
Coloque umaColoque umamoedamoeda
Receba a LataReceba a Lata
26
Encapsulamento Uma interface pode ter várias formas de implementação Mas, pelo princípio do encapsulamento, a implementação
utilizada por um objeto receptor de uma mensagem não importa para um objeto remetente da mesma
Encapsulamento Encapsulamento:
◦ Exemplos: Se a companhia telefônica mudar seus processos,
você vai continuar usando o aparelho normalmente?
A implementação de uma classe, pode ser alterada sem afetar a sua interface.
Se um novo telefone for criado, como um telefone digital, a implementação interna foi alterada, mas a interface com o usuário permanece a mesma.
Modularidade
Decomposição de um problema em pequenos pedaços, para gerenciar complexidade (Dividir para conquistar)
Cada conceito independente deve ser representado por um módulo
Construção de módulos desacoplados
Polimorfismo
É a habilidade de objetos de classes diferentes responderem a mesma mensagem de diferentes maneiras
Polimorfismo
Polimorfismo
Polimorfismo
Herança
Herança É o mecanismo para definir uma nova
classe em termos de uma já existente.
É o relacionamento entre classes de objetos que permite a uma classe incluir atributos e operações definidas por outra classe mais genérica.
A classe mais genérica é chamada de superclasse e as classes mais específicas de subclasse.
Herança Herança simples:
Herança Herança Múltipla:
37
Composição Objetos possuem relacionamentos Composição
◦ Um objeto pode ser formado por outros objetos◦ Casa, livro, jardim, agenda de contatos, etc
Um livro é composto de capítulos Capítulo é parte essencial de livro
◦ Se não existir capítulo, não existe livro◦ Capítulo não existe fora de livro
Composição Linha com losângulo preenchido na classe
“dominante”◦ Livro é composto de 1 ou mais capítulos
Exercícios Identifique atributos para as classes:
◦ Caderno;◦ Arquivo em um computador.
Agência bancária◦ Descreva os atributos e métodos de uma conta
corrente em uma agência bancária
Respostas Caderno:
◦ Atributos: quantidade de folhas, tamanho, tipo da capa, preço, fabricante, etc.
Arquivo em um computador:◦ Atributos: nome, tamanho, tipo do arquivo, data e hora
da última atualização, propriedades de acesso, etc. Conta bancário:
◦ Atributos: número, agência, tipo da conta (corrente, poupança, salário), saldo, etc.
◦ Métodos: Creditar, debitar, transferir, imprimir saldo, etc.
Exercícios Identifique nas classes que atributos e/ou operações
não pertencem ao escopo do problema.
◦ Classe: Aluno (sistema de controle de alunos do ensino médio) Atributos: nome, telefone, endereço, filiação, altura, data
de nascimento, disciplina. Métodos: Realizar matricula, emitir boleto, verificar notas.
Exercícios◦ Classe: Professor (Cadastro de professores de uma
universidade) Atributos: nome, formação acadêmica, data de nascimento,
data de casamento, sexo. Métodos: Listar disciplinas, Emitir contracheque, inserir
notas das disciplinas.◦ Classe: Livro (Cadastro de livros de uma livraria)
Atributos: título, ISBN, número de páginas, autores, editora, preço de custo, preço de venda, ano da edição.
Métodos: cadastrar livro, calcular desconto especial, imprimir livro.
Respostas
Classe: Aluno◦ Atributos: altura
Classe: Professor ◦ Atributos: Data de casamento
Classe: Livro◦ Métodos: Imprimir livro
Resumo
Número Saldo
String double
creditar
debitar
Número Saldo
21.342-7 875,32
creditar
debitar
Número Saldo
89.342-X 105,33
creditar
debitar
Resumo
creditar(20.00)
Número Saldo
21.342-7 875,32
creditar
debitar
Número Saldo
21.342-7 895,32
creditar
debitar
Resumo
Número Saldo
String double
creditar
debitar
Número Saldo
Stringdouble
creditar
debitardebitar
renderJurosrenderJuros
extends
Conta Poupança
Resumo
creditar(20.00)
Número Saldo
21.342-7 875,32
creditar
debitardebitar
renderJurosrenderJuros Número Saldo
21.342-7 895,32
creditar
debitardebitar
renderJurosrenderJuros
Resumo
renderJuros(0.01)
Número Saldo
21.342-7 875,32
creditar
debitardebitar
renderJurosrenderJuros Número Saldo
21.342-7 884,07
creditar
debitardebitar
renderJurosrenderJuros