Programação Web Orientada a Objetos Professor: Charles Jefferson.
Transcript of Programação Web Orientada a Objetos Professor: Charles Jefferson.
![Page 1: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/1.jpg)
Programação Web Orientada a Objetos
Professor: Charles Jefferson
![Page 2: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/2.jpg)
Plano de Ensino
Unidade Curricular: Programação Web Orientada a Objeto
Carga Horária: 120 Horas
Curso: Informática para Internet
Modalidade: Técnico Subsequente
PROFESSOR: Charles Jefferson R. Alves e Alves
![Page 3: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/3.jpg)
Objetivo
Capacitar o aluno, de forma que seja capaz de compreender e implementar os fundamentos da Programação Orientada a Objetos, bem como interpretar artefatos de projeto, mapeando-os através da implementação no computador.
Analisar e projetar Sistemas Web baseado em objetos.
Implementar pequenas aplicações com interface gráfica utilizando objetos já definidos no ambiente de desenvolvimento.
![Page 4: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/4.jpg)
Habilidades
Aplicar os conceitos básicos de Orientação a Objetos.
Identificar as propriedades e as responsabilidades dos objetos.
Desenvolver sistemas Web, utilizando Orientação a Objetos baseados em componentes.
Realizar a conexão com interface e base de dados;
Avaliar resultados de testes dos programas desenvolvidos;
Interpretar e analisar o resultado da modelagem de dados;
Estruturar algoritmos de permitam a representar regras de negócios;
Desenvolver aplicações Web em camadas.
![Page 5: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/5.jpg)
Conteúdo Programático
Conceitos de Programação Orientada a Objetos: Classe, Objeto, Herança, Polimorfismo, Abstração,Generalizações, Superclasse e Subclasse.
Construtores e Destrutores.
Aplicações dos conceitos utilizando uma linguagem de programação orientada a objetos.
Confecção e interpretação de diagramas UML.
Conceitos de Padrões de Projetos e Utilização do padrão MVC.
Funções avançadas.
Desevolvimento de um sistema web comercial
![Page 6: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/6.jpg)
Metodologia
Aulas expositivas dialogadas e interativas
Pesquisas e debates informais
Trabalho em grupo e individual
Aula prática no laboratório
![Page 7: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/7.jpg)
Avaliação
Presença e participação nas atividades em sala de aula – 1,0 pontos.
Apresentação de trabalhos – 3,0 pontos
Prova individual – 6,0 pontos.
![Page 8: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/8.jpg)
Pré-requisitos
Lógica de Programação
Contrução de Algorítmos
HTML
Linguagem Orientada a Objetos: JAVA, C++, C#, VB.NET, PHP5
![Page 9: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/9.jpg)
Programação Orientada a Objetos
É um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software.
A POO foi criada para tentar aproximar o mundo real do mundo virtual: a idéia é simular o mundo real dentro do computador.
O mundo real é extremamente complexo. A orientação a objetos tenta gerenciar a complexidade inerente aos problemas do mundo real abstraindo o conhecimento relevante e encapsulando-o dentro de objetos.
Na POO o programador é responsável por moldar o mundo dos objetos, e explicar para estes objetos como eles devem interagir entre si.
Os objetos "conversam" através do envio de mensagens, e é o programador que especifica quais serão as mensagens que cada objeto pode receber, e a ação que deve realizar ao receber aquela mensagem em específico.
![Page 10: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/10.jpg)
Programação Orientada a Objetos
Na visão da orientação a objetos, o mundo é composto por diversos objetos que possuem um conjunto de características e um comportamento bem definido.
Quando programamos seguindo o paradigma de orientação a objetos, definimos abstrações dos objetos reais existentes.
Todo objeto possui as seguintes características:
Estado: conjunto de propriedades de um objeto (valores dos atributos).
Comportamento: conjunto de ações possíveis sobre o objeto (métodos da classe).
Unicidade: todo objeto é único (possui um endereço de memória).
![Page 11: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/11.jpg)
POO – Histórico
Com os problemas gerados pela crise de softares, surge a Engenharia de Sofware (60).
Porém, as várias técnicas desenvolvidas nos anos 70 e 80 não resolveram o problema de produtividade e qualidade nos softwares.
Lições da década de 80 Requisitos do usuário são mais importantes
Funções e dados tem grande importância, porém não podem estar separados
![Page 12: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/12.jpg)
POO – Histórico
Realidade atual
Sistemas de alta complexidade
Ferramentas de desenvolvimento drasticamente diferentes de 20 anos atrás.
Sistemas maiores, mais complexos e mais voláteis.
A mudança para alcançar a qualidade e produtividade está na reutilização.
![Page 13: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/13.jpg)
POO – Técnicas de Programação
Programação Não-Estruturada Programação Procedimental (ou Procedural) Programação Estruturada (ou Modular) Programação Orientada à Objetos
![Page 14: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/14.jpg)
POO – Programação Não-Estruturada
Programas simples e pequenos consistindo de apenas um programa principal.
– Ex. Cartão
“Programa” é uma seqüência de comandos ou instruções que modificam dados “globais” durante toda a sua execução.
Como melhorar este modelo de programação ?
– Extração de seqüências (procedures)
![Page 15: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/15.jpg)
POO – Programação Procedimental (Procedural)
Um programa é visto como uma seqüência de procedimentos que se “comunicam” através de dados locais, denominados parâmetros.
O fluxo destes dados pode ser ilustrado como um grafo hierárquico ou uma árvore.
Desta forma, temos um único programa que é dividido em pequenas partes, chamadas “procedures”. Para permitir o uso de procedimentos genéricos ou grupo de procedimentos em outros programas, precisamos separá-los e disponibilizá-los.
![Page 16: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/16.jpg)
POO – Programação Estruturada (Modular)
Um programa não consiste mais de uma única parte em um único arquivo. É agora dividido em várias pequenas partes chamados módulos, que interagem, através de chamadas aos procedimentos, formando o programa.
Cada módulo pode ter seus próprios dados. Isto permite que cada módulo gerencie estruturas de dados internas, que são modificadas pelas chamadas aos procedimentos.
Entretanto, só existe um estrutura por módulo e cada módulo só pode existir uma única vez no programa.
Problema: E para se manipular mais de uma lista ?!?
![Page 17: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/17.jpg)
POO – Programação Orientada a Objetos
Na Orientação a Objetos, a estrutura é organizada pelos dados. Escolhe-se a representação dos dados que melhor se adequam aos requisitos do problema.
Consequentemente, os programas ficam estruturados pelos dados e não mais pelas operações.
Isto significa que os dados apenas especificarão operações válidas. Agora os módulos serão agrupados por dados e suas representações, denominadas classes.
![Page 18: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/18.jpg)
POO – Programação Orientada a Objetos
Cada objeto “implementa”seus próprios módulos e dados, permitindo que várias estruturas coexistam.
Cada objeto é responsável por inicializar e destruir os seus dados. Consequentemente, não existe mais a necessidade de explicitar uma chamada aos procedimentos de criação e destruição.
![Page 19: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/19.jpg)
POO – Objetivos
Produção de software mais confiável
proteção aos dados: encapsulamento
Aumento da produtividade de software
reutilização de código: classes
extensão da biblioteca de classes:
definição de subclasses (herança)
implementação de novos métodos
redefinição de métodos (polimorfismo)
![Page 20: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/20.jpg)
POO – Regras de Desenvolvimento
DecomposiçãoA partir de um problema geral, definir um conjunto de subproblemas independentes que podem ser tratados em separado.
IndependênciaA alteração de um módulo não incorre na modificação de outros módulos.
ReutilizaçãoQuanto mais um módulo for independente, maior a chance dele poder ser reutilizado em outra aplicação.
Auto documentado
Todo módulo deve ser compreensível sem a necessidade de verificar seu relacionamento com os outros módulos.
![Page 21: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/21.jpg)
POO
A orientação a objetos pode ser resumido como um estilo de desenvolvimento baseado no conceito de objetos.
Em uma linguagem puramente orientada a objetos todas as representações são realizadas por objetos.
Os objetos combinam dados e funções.
A orientação a objetos pode ser aplicada: Análise; Projeto; Implementação de um sistema.
![Page 22: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/22.jpg)
Atributos
Os atributos são as características ou propriedades de uma classe.
Basicamente a estrutura de dados que vai representar a classe.
Exemplos: Funcionário: nome, endereço, telefone, CPF
![Page 23: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/23.jpg)
Métodos
Um determinado método define um comportamento do objeto.
Tipos básicos de métodos:
Construtor (constrói estados)
Destruidor (destrói estados)
![Page 24: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/24.jpg)
Mensagem
É uma chamada a um objecto para invocar um de seus métodos, activando um comportamento descrito por sua classe.
Também pode ser direcionada diretamente a uma classe (através de uma invocação a um método estático)
![Page 25: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/25.jpg)
Classe
Uma classe define estado e comportamentos de um objeto, implementando métodos e atributos.
Os objetos de certo tipo ou classificação compartilham os mesmos comportamentos e atributos.
As classes são usadas para criar ou instanciar objetos.
![Page 26: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/26.jpg)
Classe
Exemplos de Classes: Entidades do Negócio da Aplicação(pessoa, conta, cliente,
fornecedor)
Entidades de Interface(janela, botão, painel, frame, barra)
Entidades Diversas(conexão com o banco de dados, um arquivo-texto, um arquivo XML, uma conexão SSH, uma conexão FTP, um Web Service)
![Page 27: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/27.jpg)
Classe
Uma classe Pessoa, poderá ter como propriedades: Nome Altura Idade Nascimento Escolaridade Salário
Poderá ter como métodos: Crescer() Formar() Envelhecer()
![Page 28: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/28.jpg)
Classe
Representação gráfica da classe pessoa de acordo com o padrão UML:
Pessoa+Codigo: integer+Nome: string+Altura: integer+Idade: integer+Nascimento: date+Escolaridade: string+Salario: float
+Crescer(centimetros:integer)+Formar(titulo:string)+Envelhecer(anos:integer)
![Page 29: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/29.jpg)
Objeto
Objeto é uma estrutura dinâmica originada com base em uma classe.
O objeto é uma instância de uma classe.
O objeto existe durante um dado instante de tempo – da sua criação até a sua destruição.
São objetos da classe Pessoa: Carlos, Maria, João, José.
![Page 30: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/30.jpg)
Objeto
Representação gráfica dos objetos da classe pessoa de acordo com o padrão UML:
Pessoa+Codigo = 10+Nome = Carlos da Silva+Altura = 1,85+Idade = 25+Nascimento = 10/04/1976+Escolaridade = Ensino Médio+Salario = R$ 700,00
+Crescer(centimetros:integer)+Formar(titulo:string)+Envelhecer(anos:integer)
![Page 31: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/31.jpg)
Pacote ou Container
Quando desenvolvemos um sistema orientado a objetos, definimos um con- junto de classes e para organizar essas classes surge o conceito de pacote.
Pacote é um envoltório de classes, ou seja, guarda classes e
outros pacotes logicamente semelhantes ao pacote que os contém.
Podemos visualizar os pacotes como diretórios ou pastas, nos quais podemos guardar arquivos (classes) e outros diretórios (pacotes) que tenham conteúdo relacionado com o pacote que os contém.
![Page 32: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/32.jpg)
PHP Orientado a Objetos
A partir da versão 5, a orientação à objetos do PHP ficou praticamente completa, não deixando nada a desejar com relação as linguagens de programação voltadas para desktop.
Dentre as funcionalidades que ela suporta, podemos citar Sobrescrita de função, Sobrecarga de função, Herança, Polimorfismo e Interfaces.
Assim como no Java, PHP OO não suporta herança múltipla. A solução que os programadores fazem para compensar isso é a utilização de interfaces.
![Page 33: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/33.jpg)
PHP Orientado a Ojetos
A orientação à objeto do PHP que será trabalhada, será:
Criação de classeAtributosMétodos construtorEncapsulamento Modificadores de acesso (Private, Public, Protected)Métodos SetMétodos GetCriação de objetosChamada de métodosHerança
![Page 34: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/34.jpg)
Encapsulamento
É um processo no qual se ocultam as características internas de um objeto àqueles elementos que não têm porque conhece-las. Os modificadores de acesso servem para indicar as permissões que terão outros objetos para acessar a seus métodos e atributos
Modificadores de acesso em PHP:PublicPrivateProtected
![Page 35: Programação Web Orientada a Objetos Professor: Charles Jefferson.](https://reader036.fdocuments.net/reader036/viewer/2022081515/552fc15e497959413d8e5da3/html5/thumbnails/35.jpg)
Encapsulamento
Public - É o modificador de acesso padrão, ou seja, quando não se define o modificador de acesso de um método ou atributo, esse é interpretado pelo PHP como public. É o modificador mais permissivo, pois os métodos ou atributos public podem ser acessados em qualquer parte do programa. Na UML seu símbolo é +
Private - É o modificador de acesso mais restritivo. Um atributo ou método private, só pode ser acessado pelo próprio objeto. Na UML seu símbolo é -
Protected - É um modificador de restrição média. Um atributo ou método protected, pode ser acessado pelo próprio objeto e por objetos das classes filhas (que o herdou). Na UML seu símbolo é #