POO Programaçã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 4 E 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ção chamada 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. DADOS GLOBAIS Procedimento 1 Procedimento 2 Procedimento 3 Aqui temos um bloco de dados globais que os procedimentos ou funções antes de funcionarem iram verificar nele quais poderiam ser útil. 11
Agora tem-se o seguinte cenário. DADOS DE OBJETO MÉTODO 1 MÉTODO 2 DADOS DE OBJETO MÉTODO 1 MÉTODO 2 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 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