Vous êtes sur la page 1sur 60

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
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ão Alves
Saldo 12000
Limite 10000

Numero 95653
Numero 252525
Cliente Marisa Rua
Cliente Lucas Silva
Saldo 8000
Saldo 6000
Limite 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
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 Triâng


Objetos da Classe Quadrado
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.
Modificadores de Acesso
• 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
Classe/
modificador Atributos ou pacote subclasse todos
métodos
public
Sim Sim Sim Sim
protected
Sim Sim Sim Não
nenhum
Sim Sim Não Não
private
Sim Não Não Não
E então? Agora que conhecemos
um pouco sobre Orientação a
objetos...

Bora trabalhar?
Início da Atividade de ED – Parte 1
Exercícios sobre POO
• 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”.
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.