Adélia Barros O Paradigma de Orientação a Objetos.
Transcript of Adélia Barros O Paradigma de Orientação a Objetos.
![Page 1: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/1.jpg)
Adélia Barros
O Paradigma de Orientação a Objetos
![Page 2: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/2.jpg)
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”
![Page 3: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/3.jpg)
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.
![Page 4: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/4.jpg)
Conceitos e Princípios da OO Conceitos
◦ Abstração◦ Classe◦ Objeto◦ Mensagem
Princípios◦ Encapsulamento◦ Modularidade◦ Polimorfismo◦ Generalização (Herança)◦ Composição
![Page 5: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/5.jpg)
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.
![Page 6: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/6.jpg)
Abstração
![Page 7: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/7.jpg)
Abstração Três abstrações de um carro:
![Page 8: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/8.jpg)
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.
![Page 9: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/9.jpg)
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
![Page 10: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/10.jpg)
Objetos Objetos possui atributos:
![Page 11: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/11.jpg)
Objetos E os objetos possuem comportamento:
![Page 12: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/12.jpg)
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
![Page 13: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/13.jpg)
Classes Classes:
![Page 14: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/14.jpg)
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
![Page 15: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/15.jpg)
Classes
Classe Lampada◦ Atributos◦ potencia (int), ligada(boolean)
Operações◦ ligar, desligar, estaLigada
![Page 16: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/16.jpg)
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.
![Page 17: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/17.jpg)
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.
![Page 18: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/18.jpg)
Classes
![Page 19: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/19.jpg)
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.
![Page 20: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/20.jpg)
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.
![Page 21: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/21.jpg)
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.
![Page 22: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/22.jpg)
Mensagens
Após a execução, o controle volta para o objeto que enviou a mensagem.
![Page 23: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/23.jpg)
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...
![Page 24: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/24.jpg)
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
![Page 25: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/25.jpg)
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
![Page 26: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/26.jpg)
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
![Page 27: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/27.jpg)
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.
![Page 28: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/28.jpg)
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
![Page 29: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/29.jpg)
Polimorfismo
É a habilidade de objetos de classes diferentes responderem a mesma mensagem de diferentes maneiras
![Page 30: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/30.jpg)
Polimorfismo
![Page 31: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/31.jpg)
Polimorfismo
![Page 32: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/32.jpg)
Polimorfismo
![Page 33: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/33.jpg)
Herança
![Page 34: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/34.jpg)
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.
![Page 35: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/35.jpg)
Herança Herança simples:
![Page 36: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/36.jpg)
Herança Herança Múltipla:
![Page 37: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/37.jpg)
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
![Page 38: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/38.jpg)
Composição Linha com losângulo preenchido na classe
“dominante”◦ Livro é composto de 1 ou mais capítulos
![Page 39: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/39.jpg)
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
![Page 40: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/40.jpg)
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.
![Page 41: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/41.jpg)
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.
![Page 42: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/42.jpg)
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.
![Page 43: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/43.jpg)
Respostas
Classe: Aluno◦ Atributos: altura
Classe: Professor ◦ Atributos: Data de casamento
Classe: Livro◦ Métodos: Imprimir livro
![Page 44: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/44.jpg)
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
![Page 45: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/45.jpg)
Resumo
creditar(20.00)
Número Saldo
21.342-7 875,32
creditar
debitar
Número Saldo
21.342-7 895,32
creditar
debitar
![Page 46: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/46.jpg)
Resumo
Número Saldo
String double
creditar
debitar
Número Saldo
Stringdouble
creditar
debitardebitar
renderJurosrenderJuros
extends
Conta Poupança
![Page 47: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/47.jpg)
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
![Page 48: Adélia Barros O Paradigma de Orientação a Objetos.](https://reader035.fdocuments.net/reader035/viewer/2022070311/552fc10b497959413d8c1da9/html5/thumbnails/48.jpg)
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