Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
LINGUAGEM DE PROGRAMAÇÃO II /PROGRAMAÇÃO ORIENTADA A OBJETOS I Seção I História e conceito de Orientação a Objetos Professorª Angela Saemi angela.takesaki@bilac.com.br 1 Programação Orientada a Objetos O início 1960 - 0rigem: Noruega. Primeira Linguagem: Simula. 1970 – Inspiração para desenvolver a linguagem Smalltalk. Smalltalk – Orientação a objetos pura. Linguagens POO Muitas outras linguagens nasceram depois... C++ - Muito popular, evoluiu a partir da linguagem C. Meados de 1990 – Sun Microsystems desenvolve a Linguagem de Programação Java. Final de 1990 - A linguagem Java se populariza. Por que programar orientado a objetos? Problemas com o paradigma procedural Programar orientado a objeto ajuda na organização e resolve problemas encontrados na programação procedural. Exemplo de problema em programação procedural Imagine uma aplicação em que você tenha a necessidade de validar o cpf como no exemplo abaixo: Scanner input = new Scanner (System.in); String cpf = input.nextLine(); validarCPF(cpf); Exemplo de problema em programação procedural Você não teria problemas se tivesse que validar o cpf apenas uma vez. Mas e se você tivesse 100 formulário e todos eles tivessem que validar o cpf? Você implementaria o código-exemplo e o método validaCPF(cpf) em todos os formulários? Exemplo de problema em programação procedural Se outro programador fosse contratado em sua equipe? Ele teria que ser avisado sobre a necessidade de implantação em cada formulário? Exemplo de problema em programação procedural Estes são alguns problemas enfrentados em paradigmas procedurais. A implementação de programação orientado a objetos resolveria a maioria dos problemas enfrentados. E o que é a programação orientada a objetos? O que é programação orientada a objetos? Programação que se baseia no conceito de objetos, ou seja, aproxima a sintaxe da programação à forma que pensamos através de símbolos definidos diferenciados pela sua utilidade e forma. O que é programação orientada a objetos? É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo real (que pertencem ao escopo da aplicação) dentro do software. O que é programação orientada a objetos? Na Programação orientada a objetos é possível visualizar o programa como uma coleção de objetos que cooperam entre si utilizando-se de comunicação através de mensagens. Coleção de objetos? Objeto Objeto Objeto Objeto Objeto Programação orientada a objetos Sistema orientado a objetos: centrado em objeto! Programação orientada a objetos Objeto é uma entidade que possui atributos, ou propriedades que descrevem o estado de um objeto do mundo real. Programação orientada a objetos Ações, ou métodos, que representam o comportamento do objeto no mundo real. Programação orientada a objetos Um identificador, ou nome, que torna sua existência única em uma representação. O que é programação orientada a objetos? Na Programação orientada a objetos, objeto é uma instância de uma classe e todas as classes formam uma hierarquia de classes unidas através de uma relação de herança. Modelos O que são modelos? São representações de objetos, pessoas, itens, tarefas, processos, conceitos, ideias, etc... São usados constantemente por pessoas no seu dia-a-dia, independente do uso de computadores Modelo de banco Em um banco, qual é a entidade mais importante? A conta do cliente! Mas quais as características de uma conta? O que caracteriza uma Conta de banco? O que caracteriza uma Conta de banco? Número da conta Nome do cliente Saldo limite O que podemos fazer em nossa Conta de banco? O que podemos fazer em nossa Conta de banco? Sacar uma quantidade de dinheiro. Depositar uma quantidade de dinheiro. Imprimir o nome do dono da conta. Imprime o saldo atual. Transfere uma quantidade de dinheiro para uma outra conta. Imprime o tipo da conta. Banco Numero 121212 Cliente JoãoAlves Saldo 12000 Limite 10000 Numero 95653 Cliente MarisaRua Saldo 8000 Limite 6000 Numero 252525 Cliente Lucas Silva Saldo 6000 Limite 5000 Classes e Objetos Orientação a Objetos é uma forma de interpretar, modelar e entender o mundo real sob a perspectiva de objetos. Assim, dois conceitos são importantes: o de Classes e o de Objetos 27 Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos. Estamos sempre identificando qualquer objeto ao nosso redor. Para isso lhe damos nomes, e de acordo com suas características lhes classificamos em grupos, ou seja, classes. Características fundamentais da POO Utilização de objetos, e não funções ou procedimentos como seu bloco lógico fundamental de construção de programas (Característica de programas procedurais) Características fundamentais da POO Objetos comunicam-se entre si através de mensagens Cada objeto é uma instância de uma classe Classes se relacionam com as outras via mecanismos de heranças Definição da POO Linguagens orientadas a objetos: Ao invés de passar dados a procedimentos, requisita-se que objetos realizem operações neles próprios. O que são objetos? Objetos são instâncias de classes, que determinam qual informação um objeto contém e como ele deve manipulá-la. O que são objetos? Objeto é o conceito abstrato que deve se parecer com o artefato real que estamos implementando, tanto nas suas características (atributos), quanto na sua utilidade (seus métodos). O que são objetos? Todo objeto tem um tipo ou seja modelo. Objeto é uma instância e uma classe, onde classe é um sinônimo de tipo. O que são objetos? Objetos são como uma única entidade autônoma que combina a representação da informação (estrutura de dados) e sua manipulação (procedimentos), uma vez que possuem capacidade de processamento e armazenam um estado local. O que são classes? Classe é um modelo de objeto onde são implementadas características e funcionalidades desse objeto. O que são classes? Classes interagem entre si para formarem componentes, objetos maiores, bibliotecas, pacotes, etc. O que são classes? Cada objeto criado a partir de uma classe é chamado de instância dessa classe. Uma classe provê toda a informação necessária para construir e utilizar objetos de um tipo particular. O que são classes? Em termos de programação, para criarmos um objeto, definindo seus atributos e operações, precisamos de uma entidade para reunir essas características do objeto. O que são classes? Essa entidade deverá garantir que naquele objeto só estão sendo inseridos atributos e operações que realmente fazem parte daquele objeto. O que são classes? Após sua finalização, esta entidade será o modelo do objeto e poderá ser utilizada quantas vezes aqueles atributos ou operações do objeto forem necessários. Representação do relacionamento entre classes e objetos Objetos da Classe Círculo Objetos da Classe Quadrado Objetos da Classe Triângulo Classes No exemplo de uma empresa, podemos criar classes para várias entidades, como: empregados, departamentos, filiais, produtos, documentos, etc. Classes Na definição de uma Classe Empregado, são especificados as suas propriedades e comportamento. Quando um novo empregado é admitido na empresa, ele é criado como uma instância da Classe Empregado, e automaticamente possui todas as características da classe. Vantagens da POO A POO tem alcançado muita popularidade devido às suas vantagens, como: Reusabilidade de código; Escalabilidade de Aplicações; Mantenabilidade; Vantagens da POO Reusabilidade Permite que programas sejam escritos mais rapidamente; Demanda maior, necessidade de desenvolvimento de sistemas mais rápido. Vantagens da POO Reusabilidade Possibilita o desenvolvimento de novos sistemas utilizando muito código já existente. A herança é o ponto principal para a reusabilidade de código. Vantagens da POO Escalabilidade Capacidade de uma aplicação crescer facilmente sem acréscimo demasiado de complexidade ou comprometimento no seu desempenho. Vantagens da POO Escalabilidade A POO é adequada para o desenvolvimento de grandes sistemas, visto que pode-se construir e ampliar um sistema agrupando objetos e fazendo-os trocar mensagens entre si. Vantagens da POO Encapsulamento Proporciona ocultamento e proteção da informação. Os acessos à objetos somente podem ser realizados através das mensagens que ele está habilitado a receber. Vantagens da POO Polimorfismo O polimorfismo torna o programa mais enxuto, claro e fácil de compreender. Sem a utilização do polimorfismo, seriam necessárias um número imenso de métodos com nomes diferentes mas com comportamento similar. Em termos de manutenção, significa que o programa será mais facilmente entendido e alterado. Vantagens da POO Herança A herança torna a manutenção mais fácil. Caso a aplicação precisar de alguma funcionalidade adicional, não há a necessidade de alteração do código atual. Vantagens da POO Herança Basta criar uma nova geração de uma classe, herdando o comportamento antigo e adicionando novo comportamento, ou até mesmo redefinindo o comportamento antigo. Modificadores de Acesso Uma classe pode ser: public – acessado por qualquer outra classe. nenhum modificador (package-private) – acessada somente dentro do seu pacote. Atributos e métodos podem ser: public – acessados por qualquer outra classe. nenhum modificador (package-private) – acessados somente dentro do seu pacote private – acessados somente dentro de suas próprias classes. protected – acessados somente dentro do seus pacotes e por suas subclasses. Modificadores de Acesso Não Não Não Sim private Não Não Sim Sim nenhum Não Sim Sim Sim protected Sim Sim Sim Sim public todos subclasse pacote Classe/ Atributos ou métodos modificador Modificadores de Acesso E então? Agora que conhecemos um pouco sobre Orientação a objetos... Bora trabalhar? Grupo de até 4 pessoas. Relatório de estudo de POO: Analise e descreva características e comportamentos das seguintes entidades: Carro Caminhão Veículo Aluno Professor Pessoa Funcionário Início da Atividade de ED – Parte 1 Exercícios sobre POO Faça um relatório sobre sua análise. Após a análise, verifique quais entidades têm características em comum: Por exemplo, carro e caminhão? Têm características e comportamentos em comum? O relatório deve ser enviado para o e-mail angela.aulas@gmail.com. No assunto coloque nome dos integrantes,o curso, período e “Atividade ED 1”. Início da Atividade de ED – Parte 1 Exercícios sobre POO Bibliografia DEITEL, Paul J.; DEITEL, Harvey M.; Java - Como programar, 8ª edição, São Paulo, Editora: Prentice Hall, 2010. GOODWILL J. Pure JSP -- Java Server Pages: A Code-Intensive Premium Reference Sams, 2000. GONÇALVES, Edson. Desenvolvendo aplicações Web com JSP, Servlets, JavaServer faces, Hibernate, EJB 3 Persistence e Ajax. Ciência Moderna. ISBN 8573935723 ARAUJO, Everton Coimbra de ; Desenvolvimento para WEB com Java, São Paulo, Visual Books, 2010.
Compartilhar