Buscar

História e Conceito de POO

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.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando