Upload
ngothuan
View
214
Download
0
Embed Size (px)
Citation preview
POOProgramação Orientada a Objeto
Introdução a POO
Professor Jarbas Araújo
Como era antes da POO?• Programava-se em baixo nível :
• Ou seja não se tinha um tipo de programação ou comandos
• Todas as instruções eram feitas da forma que o computador interpretava se ele fosse binário instruções e binário se fossem decimal instruções em decimal.
2
Dificuldade antes da POO• Com esse quadro de cada computador um tipo de programação,
quem programava esses computadores eram os próprios engenheiros e não programadores.
• Então essa linguagem de baixo nível ou também chamada de linguagem de maquina eram muito complexa.
3
Surgimento de linguagens de alto nível
• Agora com linguagens de forma Linear aparecendo no mercado tivemos um crescimento no entendimento e facilidade em programar um computador, ou seja, sendo linear ela segue um padrão decima para baixo sem muitas possibilidades de comandos ou rotinas, bem engessada.
• E com se fosse uma lista de execuções.Exemplo lista de compras- Compra item 1- Compra item 2- Compra item 3- Compra item 4E uma programação limitada porem, mais compreensível que a de baixo nível que exigia muito mais conhecimento.
4
Programação Estruturada• Agora podemos inserir códigos da programação linear em blocos
organizados aonde poderão ser executadas de forma não linear.
5
Surgimento dos Sistemas• Com a programação agora estruturada, foram criados pequenos
sistemas, deixando de lado os programinhas.
• Mas com o crescimento dos sistemas a linguagem estruturada não atendia a algumas demandas e então surgiu um tipo de programçãochamada programação modular.
6
Programação modular• Permite a criação de pequenos módulos estruturados, valorizando os
dados e as funcionalidades. Então eram colocados em pequenas capsulas e assim poderiam ser parte de sistemas ainda maiores.
• Mas ela teve uma vida muito curta devido a paradigmas teve-se o surgimento da POO
7
O que é POO• Programação Orientada a Objeto
• Objetivo
• Aproximar o mundo digital do mundo real
8
Conclusão• Tudo começou em nível bem físico até chegar nessa abstração de hoje
9
Quem criou a programação orientada a objeto
• Alan Curtis Kay
• Nascido em Springfield, Massachusetts
• Formado em matemática e biologia. Sua tese sobre orientação a objetos gráfica rendeu o título de Ph.D. na Universidade de Utah.
• contribuiu para o desenvolvimento da Ethernet, impressora laser e o modelo de rede cliente-servidor. Ainda envolvido com a computação portável, Kay continuou a defender o uso de um protótipo de laptop para crianças, o qual ele apelidou de "Dynabook". Infelizmente, naquela época, a tecnologia para criar o Dynabook ainda não existia. Em 1973, junto com Chuck Thacker criou o "interim Dynabook" chamado de Alto que foi considerado o primeiro computador pessoal moderno em rede.
• Após dez anos na Xerox PARC, Kay tornou-se cientista chefe da Atari por três anos.
• 1984 Kay associou-se a Apple Computer até o fechamento da ATG (Advanced Technology Group), uma das divisões de pesquisa e desenvolvimento da empresa. Ele então associou-se a Walt Disney Imagineering. Após a Disney, ele fundou em 2001 o Viewpoints Research Institute, uma organização sem fins lucrativos dedicada às crianças, ao aprendizado e ao desenvolvimento de software avançado.
• Posteriormente, trabalho com um time da Applied Minds e então tornou-se pesquisador da Hewlett-Packard até que a empresa fechou o time de pesquisa em 2005.
• formulou sua "analogia algébrico-biológica". Kay lançou o postulado de que o computador ideal deveria funcionar como um organismo vivo, isto é, cada "célula" comportar-se-ia relacionando-se com outras a fim de alcançar um objetivo, contudo, funcionando de forma autônoma. As células poderiam também reagrupar-se para resolver um outro problema ou desempenhar outras funções.
• Fonte: https://pt.wikipedia.org/wiki/Alan_Kay
10
Mas como funciona essa POO• Ante tínhamos o seguinte cenário.
• Aqui temos um bloco de dados globais que os procedimentos ou funções antes de funcionarem iram verificar nele quais poderiam ser útil.
DADOS GLOBAIS
Procedimento 1
Procedimento 2
Procedimento 3
11
• Agora tem-se o seguinte cenário.
• Agora temos métodos que vão utilizar dados pertinentes daquele objeto.• Então agora não preciso verificar todos os dados.
• Sendo assim temos um projeto que pode se comunicar ainda um com outro
DADOS DE OBJETO
MÉTODO 1
MÉTODO 2
DADOS DE OBJETO
MÉTODO 1
MÉTODO 2
12
13
Linguagens de programação POO• C++
• JAVA
• PHP
• Python
• Ruby
• Visual Basic
• C#
14
Vantagens de POO• Software
• Confiável - O isolamento entre as partes gera software seguro.
• Oportuno - Ao dividir tudo em partes, varias delas podem ser desenvolvidas em paralelo.
• Manutenível –Ter manutenibilidade, atualizar um software é mais fácil. Uma pequena modificação vai beneficiar todas as partes que usarem o objeto.
• Extensível – O software não e estático ele deve crescer para permanecer útil.
• Reutilizável – Aproveitar um software criado para outro projeto próximo como sistema de OS.
• Natural – Que seja fácil de entender. Tendo uma preocupação maior com a funcionalidade do que com os detalhes de implementação.
15
Os pilares de POO• Abstração
• Encapsulamento
• Herança
• Polimorfismo
16
Abstração• Abstração é a habilidade de concentrar nos aspectos essenciais de um
contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software.
Por exemplo, imaginamos a abstração referente a classe Animais. Há várias entidades na classe Animais como Anfíbios, Répteis e Mamíferos que são também sub-classes da classe Animais, onde há objetos que contêm cada sub-classe como Ser-humano, Jacaré e outros.Fonte: (https://pt.wikipedia.org/wiki/Abstra%C3%A7%C3%A3o_(programa%C3%A7%C3%A3o)
• E simplificarmos uma representação de um objeto do mundo real.• Exemplo: um cadastro de clientes não é uma simplificação do cliente, mas
você só coloca no seu cadastro aquilo que é relevante para o seu sistema.
17
Encapsulamento• Lembra : proteção colocar algo de forma protegida.
• Encapsulamento vem de encapsular, que em programação orientada a objetos significa juntar o programa em partes, o mais isoladas possível. A ideia é tornar o software mais flexível, fácil de modificar e de criar novas implementações.
FONTE: (https://pt.wikipedia.org/wiki/Encapsulamento)
• Então não somos obrigados a encapsular, mas se queremos
proteger nosso código e uma boa pratica.
18
• Vendo que o encapsulamento de um software pode ser visto como uma interface e uma vantagem encapsular porque.
• Tornar mudanças invisíveis
Um software bem encapsulado, mesmo alterando suas variáveis internas, sua interface se manterá funcional.(assim como se eu trocar a pilha de um controle remoto ele continuara a funcionar)
19
• Facilitar a reutilização do código.
Com um código encapsulado posso usar esse mesmo código em diversas aplicações.(como também posso tirar uma pilha de um outro controle e utilizar no que a pilha acabou)
Reduzir efeitos colaterais.
Um software não estiver encapsulado ele pode acabar sendo danificado por algum programador, então mudando uma interface pode atrapalhar o funcionamento do programa por isso a importância do encapsulamento(se uma pilha estiver aberta você pode ficar exposto a matérias contaminadores)
20