Vous êtes sur la page 1sur 33

Paradigma Orientado a Objetos

Aula 08
Introduo
O conceito de programao orientada a
objetos tem suas razes no SIMULA67;
Mas o seu conceito s foi completamente
desenvolvido na linguagem Smalltalk 80;
Introduo
A OO surgiu como uma nova forma de
modelar e construir sistemas de softwares,
isto , de organizar e gerir as informaes
manipuladas e geradas dentro das Empresas.
Na OO Dados e Processos so vistos como
Atributos e Operaes(ou Mtodos) realizadas por
Objetos.
Introduo
O conceito empregado na dcada de 80 era
que uma linguagem orientada a objetos deve
fornecer suporte a trs recursos chave da
linguagem:
Tipos de dados abstratos
Herana
Vinculao dinmica de chamadas de mtodos
Introduo
A anlise orientada a objetos tm como meta
identificar o melhor conjunto de objetos para
descrever um sistema;
Na programao orientada a objetos,
implementa-se um conjunto de classes que
definem os objetos presentes no sistema;

Orientao a Objetos
Programa
Dados
Processos
Classe
Atributos
Mtodos
Paradigma Orientado a Objetos
O paradigma de orientao a objetos
baseado em 4 pilares:
Abstrao e/ou composio
Polimorfismo
Encapsulamento
Herana

Motivaes para uso
Independncia de implementao
Esconder Detalhes (Ocultamento)
Flexibilidade
Clareza conceitual
Modularizao
Reusabilidade
Motivaes para uso
Objetivo de criar programas que sejam facilmente
adaptados a mudanas;
Essa funcionalidade existe em funo do projeto,
de como a soluo foi pensada;
Mundo um conjunto de objetos que interagem
entre si;
Se especificam classes que contm as
informaes e o comportamento dos objetos;
Os objetos enviam mensagens uns para os outros
e esperam um retorno dessas mensagens;

Motivaes para uso
Um objeto pode fazer solicitaes a outros
objetos sem precisar conhecer a estrutura
interna desses objetos;
Isso facilita a mudana pois o comportamento
dos objetos pode ser alterado sem prejudicar
a comunicao entre os objetos;
Conceito de objetos cooperativos;

Objetos
uma entidade do mundo real que tem uma
identidade;
Objetos podem representar entidades concretas
(um arquivo no meu computador, uma bicicleta)
ou entidades conceituais (uma estratgia de jogo,
uma poltica de escalonamento em um sistema
operacional);
Cada objeto ter sua identidade significa que dois
objetos so distintos mesmo que eles
apresentem exatamente as mesmas
caractersticas;
Objetos
Um objeto necessita um mecanismo de
identificao.
Esta identificao de objeto deve ser nica,
uniforme e independente do contedo do
objeto.
Este um dos mecanismos que permite a
criao de colees de objetos, as quais so
tambm objetos em si.

Objetos e seus atributos
A estrutura de um objeto representada em
termos de atributos.
O comportamento de um objeto representado
pelo conjunto de operaes que podem ser
executadas sobre o objeto.
Objetos com a mesma estrutura e o mesmo
comportamento so agrupados em classes.
Uma classe uma abstrao que descreve
propriedades importantes para uma aplicao e
simplesmente ignora o resto.
Definio
O termo orientao a objetos significa
organizar o mundo real como uma coleo de
objetos que incorporam estrutura de dados e
um conjunto de operaes que manipulam
estes dados.
Classe
Cada classe descreve um conjunto
(possivelmente infinito) de objetos individuais.
Cada objeto dito ser uma instncia de uma
classe. Assim, cada instncia de uma classe
tem seus prprios valores para cada atributo,
mas dividem os nomes dos atributos e
mtodos com as outras instncias da classe.
Implicitamente, cada objeto contm uma
referncia para sua prpria classe.

Classe
Descrio de um tipo de objeto;
Conjunto de objetos que apresentam
caractersticas em comum;
Descrevem as propriedades e comportamentos
dos objetos atravs dos atributos e dos mtodos;
Objetos s podem ser instanciados a partir de
classes;
classe = forma de biscoito
objetos = biscoitos

Exemplo
Ex: para descrever todas as canetas, poderia
haver a classe CANETA, com suas operaes
especificadas (escrita, recarga) e atributos (cor
da tinta, capacidade da tinta). Tendo definido
a classe, possvel criar objetos particulares
para representar as diversas canetas.
Exemplo de classe
Ex: Classe Pessoa, atributos (data_nascimento,
peso, profisso)
Objeto: Paulo (25/01/1979, 80 quilos,
estudante)
Objeto: Maria (09/07/1950, 98 quilos,
professora)
Tipos de Classe
Abstrata: Serve apenas como superclasse, isto
, no existem instncias desta classe.
Os mtodos so declarados mas seu
comportamento no definido
Normalmente usadas para definio de
classes que sero utilizadas atravs de herana
por classes concretas
Tipos de classe
Concreta: Possui todas as definies dos seus
mtodos, portanto desta classe podem ser
instanciados objetos;
Classes - Objetos
Objetos
Instncias de uma classes, possuem um conjunto
de atributos e mtodos;
Ocorrncia especfica de uma classe;
Modelam entidades do mundo real;
algo real, que pode ser visualizado, pensado,
tocado;
Ex: carro, pessoa

Classes - Objetos
Objetos
Capaz de armazenar estados atravs de seus atributos
e reagir a mensagens enviadas a ele bem como se
relacionar e enviar mensagens a outros objetos;
Todos os dados que o sistema pode requerer devem
estar definidos nos objetos;
Todas as interaes e clculos s podem ser realizados
pelos objetos;
Necessidade de compreender exatamente qual a
funcionalidade e como o objeto ser utilizado para
definir todos os atributos e mtodos necessrios;

Classe X Objeto
Objetos existem apenas em tempo de
execuo, classe so conceitos
So os objetos que armazenam valor, as
classes apenas mapeiam esses atributos;
Classe: ideia, conceito;
Objeto: elemento concreto, real de uma
classe;
Classe = forma de objetos;

Atributos
Conjunto de caractersticas especficas de um
objeto;
Dados de um objeto de uma classe;
Informaes interessantes sobre algum objeto;
Ex:
Classe:Pessoa Atributos: nome, idade, cor dos olhos;
Classe:Animal Atributos: espcie, tamanho, numero
de de patas;
Classe:Automvel: Atributos:placa, cor, ano;

Mtodos
Definem a habilidade dos objetos;
Caracterstica que permite alterar a
funcionalidade de um atributo;
So os servios que o objeto pode prover;
So as aes designadas aos objetos;
Ex:
Objeto:Maria - Mtodos:caminhar,comer, dormir;
Objeto:Cachorro - Mtodos: latir, morder, rosnar;
Objeto:Carro - Mtodos:andar, buzinar, abastecer;
Abstrao
Habilidade de modelar caractersticas do
mundo real do problema que se quer resolver;
Descrever as caractersticas essenciais de uma
entidade que as distinguem de todos os
outros tipos de entidades;
Abstrao
Uma Ferrari por exemplo tem as mesmas
caractersticas de um Jaguar. A Ferrari at
pode possuir mais caractersticas, mas eles
tem algo em comum, ou seja, ambos so
carros, logo pertencem a classe carro.
A Ferrari um tipo de carro e o Jaguar
tambm, mas cada um com suas
caractersticas e aes particulares e comuns.
Encapsulamento
Separao de aspectos internos e externos
dos objetos
Ocultar informaes com o objetivo de
proteger os dados;
Definio de como implementar atributos e
mtodos de um classe;
Permite que se ignore detalhes de baixo nvel
de como as coisas funcionam internamente;

Encapsulamento
Mecanismo utilizado para impedir o acesso
direto ao estado de um objeto(seus atributos),
disponibilizando externamente apenas os
mtodos que alteram estes estados;
Ex: Botes e funes de um DVD, lidamos apenas
com a interface disponibilizada.
Ex: Circuito de um telefone, o aparelho encapsula
esses detalhes e oferece uma interface amigvel;

Encapsulamento
Mtodos
Construtores
Getters e setters
Modificadores de visibilidade
Pacotes
Visibilidade definida pelas palavras-chave :
public, private e protected
Modificadores de Acesso
Modificador de acesso, a palavra-chave que
define como um atributo, mtodo, ou classe
ser visto no contexto que estiver inserido.
Geralmente, utilizam-se modificadores de
acesso para privar os atributos do acesso
direto, tornando-os privados, e implementa-se
mtodos pblicos que acessam e alteram os
atributos.
Modificadores de Acesso
Mtodos privados geralmente so usados
apenas por outros mtodos que so pblicos,
e que podem ser chamados a partir de outro
objeto da mesma classe a fim de no repetir
cdigo em mais de um mtodo.

Para utilizar estes modificadores de acesso,
basta que o escreva antes do nome do
atributo, mtodo ou classe.
Modificadores de Acesso
Public:
O modificador public deixar visvel a classe ou membro
para todas as outras classes, subclasses e pacotes do
projeto.
Protected:
O modificador protected deixar visvel o atributo para
todas as outras classes e subclasses que pertencem ao
mesmo pacote. A principal diferena que apenas as
classes do mesmo pacote tm acesso ao membro. O
pacote da subclasse no tem acesso ao membro.
Private:
O modificador private deixar visvel o atributo apenas
para a classe em que este atributo se encontra.

Vous aimerez peut-être aussi