Programação Orientada á Objeto - Paradigmas e Implementação
-
Upload
evandro-junior -
Category
Technology
-
view
294 -
download
2
Transcript of Programação Orientada á Objeto - Paradigmas e Implementação
![Page 1: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/1.jpg)
PROGRAMAÇÃO ORIENTADA A OBJETO
(Paradigmas e Implementação)
![Page 3: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/3.jpg)
![Page 4: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/4.jpg)
“OO é um modelo computacional, não um
paradigma”
_Alan Kay
![Page 5: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/5.jpg)
É um modelo Computacional!
Que contém paradigmas!
![Page 6: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/6.jpg)
Paradigma Modelo imperativo da realidade; Padrão que permite organizar as idéias.
![Page 7: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/7.jpg)
QUAIS SÃO OS PARADIGMAS DA POO?
![Page 8: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/8.jpg)
PARADIGMAS ESSENCIAIS: Classes e Objetos Atributos e Métodos Herança e Polimorfismo Encapsulamento
![Page 9: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/9.jpg)
Vamos com calma!
![Page 10: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/10.jpg)
Como era antes da POO?
![Page 11: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/11.jpg)
Programação Estruturada
![Page 12: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/12.jpg)
Programação Orientada a Objeto x
Programação Estruturada
![Page 13: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/13.jpg)
Programação Estruturada Consiste na criação de um conjunto de procedimentos (algoritmos) para resolver o problema.
![Page 14: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/14.jpg)
Programação Estruturada A programação estruturada é formada apenas por três estruturas, que são: Sequência, onde uma tarefa é executada logo após a outra; Decisão quando um teste lógico é executado ou não; e Iteração que a partir do teste lógico algum trecho do código pode ser repetido finitas vezes.
![Page 15: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/15.jpg)
Programação Estruturada Seus códigos ficam em um mesmo bloco, sendo mais difícil e demorado fazer uma alteração, pois teremos que olhar se nenhum outro código depende daquele, fazendo uma análise mais detalhada.
É fácil de entender, sendo usada em cursos introdutórios a programação.
![Page 16: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/16.jpg)
P. Estruturada
DADOS GLOBAIS
Procedimento
Procedimento
Procedimento
Dados e Objetos
Método
Método
Dados e Objetos
Método
Método
![Page 17: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/17.jpg)
Voltando a POO
![Page 18: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/18.jpg)
CLASSES
Representa um conjunto de objetos com características afins. Uma classe define o
comportamento dos objetos através de seus
métodos, e quais estados ele é capaz de manter
através de seus atributos.
Exemplo de classe: Os seres humanos
![Page 19: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/19.jpg)
Exemplo de Classe
![Page 20: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/20.jpg)
OBJETO Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele. Exemplo de objetos da classe Humanos: João, José, Maria
![Page 21: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/21.jpg)
Exemplo de Objeto
![Page 22: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/22.jpg)
ATRIBUTOS São características de um objeto. Exemplos: Funcionário: nome, endereço, telefone, CPF,...; Carro: nome, marca, ano, cor, …; Livro: autor, editora, ano.
O conjunto de valores dos atributos de um determinado objeto é chamado de estado.
![Page 23: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/23.jpg)
MÉTODOS Definem as habilidades dos objetos. Exemplo: Bidu é uma instância da classe Cachorro, portanto tem habilidade para latir, implementada através do método de um latido.
![Page 24: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/24.jpg)
HERANÇA É o mecanismo pelo qual uma classe (subclasse) pode estender outra classe (superclasse), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). Um exemplo de herança: Mamífero é superclasse de Humano. Ou seja, um Humano é um mamífero. Há herança múltipla quando uma subclasse possui mais de uma superclasse.
![Page 25: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/25.jpg)
Exemplo de Herança
Funcionário
Nome RG Salario
Aumento(valor) Pagamento()
Chefe
Contas Gastos_extra Adicional_chefia
Pagamento_extra()
![Page 26: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/26.jpg)
POLIMORFISMO Polimorfismo = várias formas É o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos.
![Page 27: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/27.jpg)
Exemplo de Polimorfismo Animal
Tipo Cor Peso ...
Comer()
Cachorro
Comer() { “cachorro come ração...” }
Tigre
Comer() { “cachorro come osso...” }
![Page 28: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/28.jpg)
ENCAPSULAMENTO Consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os métodos que alteram estes estados. Exemplo: você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável.
![Page 29: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/29.jpg)
Exemplo de Encapsulamento
![Page 30: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/30.jpg)
Implementação: Programação
Orientada e Objeto
![Page 31: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/31.jpg)
Exemplo Programação Estruturada
![Page 32: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/32.jpg)
![Page 33: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/33.jpg)
Exemplo Programação Orientada a Objetos
![Page 34: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/34.jpg)
![Page 35: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/35.jpg)
![Page 36: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/36.jpg)
![Page 37: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/37.jpg)
Implementação: Programação Orientada a Objeto em
PHP
![Page 38: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/38.jpg)
![Page 39: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/39.jpg)
![Page 40: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/40.jpg)
Um objeto da classe deve ser instanciado pelo operador new. O operador permite referenciarmos atributos e métodos do objeto.
![Page 41: Programação Orientada á Objeto - Paradigmas e Implementação](https://reader030.fdocumentos.tips/reader030/viewer/2022020218/55a178f21a28abad468b4816/html5/thumbnails/41.jpg)
Lesson: Object-Oriented Programming Concepts (em inglês) Oracle Corporation.
Pablo Dall'Oglio. PHP Programando com Orientação a Objetos: Inclui Design Patterns. 1. ed. São Paulo: Novatec, 2007. 576 pp.
James Martin, Princípios de Análise e Projeto Baseado em Objetos, 1994, Editora Campus.
FABRICA DE SOFTWARE. Disponível em: <http://fabrica.ms.senac.br/2013/04/programacao-estruturada-versus-programacao-orientada-a-objetos/> Acesso em: 15 Dez. 2014.