POO. Programação Orientada a Objeto. Introdução a POO. Professor Jarbas Araújo

Documentos relacionados
Tecnólogo em Análise e Desenvolvimento de Sistemas

Introdução a orientação a objetos

Levantamento, Análise e Gestão Requisitos. Aula 03

Princípios de Análise e Projeto Orientados a Objetos com UML

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Desenvolvimento de Aplicações Desktop

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Introdução a Programação Orientada a Objetos

Programação Orientada a Objetos

Daniel Wildt

Programação Orientada a Objetos

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO

Linguagem de Programação I Apresentação da Disciplina

PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.

Introdução. Parte 01. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto

Lista de Exercícios AV1

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Programação de Computadores

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Programação Orientada a Objetos

Televisao tamanho tela emitirsom. conectarperifericos

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Introdução a Programação

Fundamentos de Programação 1

Introdução à Computação

Programação Orientada a Objetos

Panorâmica da Programação Orientada a Objetos

LINGUAGEM DE PROGRAMAÇÃO

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Encapsulamento. Separa a interface de um objeto dos detalhes de seu funcionamento interno. Caixa preta 2/27

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Programação Orientada a Objetos em Python

Programação de Computadores

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

Introdução ao Java. Prof. Herbert Rausch Fernandes

Aula 2 POO 1 Introdução. Profa. Elaine Faria UFU

Reinaldo Gomes Análise/projeto estruturado

Programação de Computadores

INTRODUÇÃO AOS SISTEMAS LÓGICOS

Os princípios do desenho orientado a objetos

Programação Orientada a Objetos

Apresentação da Disciplina e Revisão dos Conceitos de Orientação a Objetos

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

Motivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software

Programação Orientada a Objetos

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Sistema Computacional

Orientação a Objetos e UML

Programação Orientada a Objeto POO

O PARADIGMA ORIENTADO POR OBJETOS

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

CURSO TÉCNICO DE INFORMÁTICA Módulo C ORIENTAÇÃO À OBJETO. Conceitos

Introdução às redes de Computadores

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

pdmfc.com/academy pdm/ academy

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

ANHANGUERA ESTRUTURA DE DADOS AULA 02 O QUE É ESTRUTURA DE DADOS? Prof. Thomás da Costa

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

Prof. Luiz A. Nascimento

Aula II Orientação a Objetos. Pedro Baesse Alves Pereira

Introdução aos Padrões de Projeto. Sylvio Barbon Jr

Introdução ao paradigma da orientação a objetos

Programação por Objectos Introdução. Introdução 1/18

Algoritmos e Programação

Introdução a Orientação a Objetos

Polimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo.

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Modelo do Mundo Real. Abstração. Interpretação

PROGRAMAÇÃO I. Introdução

Algoritmos e Programação

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Problemas na Manutenção

Linguagens de Programação

Engenharia de Software Projeto de software

Projeto em Sistemas de Informação. Unidade IV Projeto do Software. Luiz Leão

Introdução à Programação Orientada a Objetos. Programação Estruturada vs Programação Orientada a Objetos

Introdução à Computação: Máquinas Multiníveis

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

Programação de Computadores

Laboratório de programação II

Conceitos avançados de programação. Módulo 8 Programação e Sistemas de Informação Gestão e Programação de Sistemas Informáticos

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO DEPARTAMENTO DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS LABORATÓRIO DE PROCESSADORES I

2.1 NesC Seguem alguns dos principais desafios impostos à linguagem NesC:

Computação II - Python Aula 1 - Apresentação do curso e revisão de programação modular

Profª. Juliana Pinheiro Campos ENG10082 Programação II Créditos: Prof. Gustavo Willam Pereira e Prof.

AVALIAÇÃO UNIFICADA 2016/1 SISTEMAS DE INFORMAÇÃO/5º PERÍODO NÚCLEO II CADERNO DE QUESTÕES

Introdução à Análise e Projeto de Sistemas

Programação Orientada a Objetos

Transcrição:

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