Вы находитесь на странице: 1из 43

PROGRAMAO ORIENTADA A OBJETOS

Introduo a Classes e Objetos


Classes
Uma classe uma abstrao utilizada para representar um conjunto de
objetos com caractersticas e comportamentos idnticos.

Ou em outras palavras:

Abstraes utilizadas para representar um conjunto de objetos com


caractersticas e comportamento idnticos.

Ou ainda

Pode ser pensada como um gabarito, um prottipo ou uma planta de


um objeto
Objetos

Tecnicamente falando, objetos so instncias em tempo


de execuo de uma classe

Todos os objetos so instncias de alguma classe


Todos os objetos de uma classe so idnticos no que diz
respeito a sua interface e implementao (o que difere um objeto
de outro o seu estado e sua identidade)
Classes e Objetos
Podemos dizer que: Classes so fbricas de objetos.
Classes e Objetos
Podemos dizer que: Classes so fbricas de objetos.
Abstrao
Uma abstrao qualquer modelo
que inclui os aspectos relevantes de
alguma coisa, ao mesmo tempo em
que ignora os menos importantes.

A depender do foco da modelagem,


elementos diferentes podero ser
considerados no contexto analisado.

O que uma Senhora e uma


Veterinria veem quando olham
para um gatinho?
Elementos de uma Classe - Atributos
Descrevem as caractersticas das
instncias de uma classe
Seus valores definem o estado do
objeto
O estado de um objeto pode mudar
ao longo de sua existncia
A identidade de um objeto, contudo,
nunca muda
Elementos de uma Classe - Mtodos
Representam o comportamento das
instncias de uma classe
Correspondem ao protocolo ou
aes das instncias de uma classe
Em outras palavras, parte do cdigo
que representa as aes que o
objeto pode executar
Classes e Objetos
Quem voc diria que a classe e quem seria o objeto?
Elementos de uma Classe - Mtodos
Um mtodo a implementao de uma operao
Mtodos s tem acesso aos dados da classe para a qual foram
definidos
Os dados de uma classe s podem ser manipulados por mtodos da classe
(pelo princpio do encapsulamento)
Mtodos possuem argumentos, variveis locais , valor de retorno etc.
Alguns mtodos especiais:
Construtores criam objetos de uma classe
Destrutores destroem objetos de uma classe
Elementos de uma Classe Atributos e Mtodos
Em resumo:
Atributos (variveis) so as coisas que a classe conhece, os dados ou informaes
do objeto, basicamente a estrutura de dados que vai representar a classe.

Mtodos so as coisas que a classe sabe fazer

Falando sobre atributos e mtodos, no Java, o espao ocupado por um objeto a


soma dos espaos dos seus atributos. Enquanto os mtodos no ocupam espao
pois, na verdades, so os mesmos para todas as instncias
Anatomia de um atributo
Os atributos podem ser de classe ou de mtodo:
Atributos de classes so criados em cada instncia da classe, os objetos e devem ser
descrito fora dos blocos de comandos dos mtodos.

Enquanto os atributos de mtodos s existem dentro do bloco de comando do respectivo


mtodo. Os atributos de mtodo no aceitam modificadores de acesso.
Anatomia de um mtodo
Os mtodos encerram um conjunto de declaraes de dados e de comandos
que so executados mediante a chamada do mtodo por seu nome.
O mtodo main o ponto onde se d o incio da execuo do programa, ele chamado
automaticamente pela JVM.

Existem situaes onde um mtodo no precisa retornar nenhuma


informao, neste casos necessrio informar o retorno como sendo nulo,
com a palavra chave void.
Modificadores de visibilidade
public protected
O modificador de visibilidade public O modificador de visibilidade protected
permite que o atributo ou mtodo seja restringe o acesso externo aos mtodos e
acessado livremente por qualquer outra atributos. Ou seja, o acesso s permitido a
classe, que importe a classe em questo. prpria classe, a suas subclasses e ao
pacote onde estes se encontram.

Com relao visibilidade dos atributos, a


private visibilidade pblica para atributos
O modificador de visibilidade private considerada prtica ruim de programao,
restringe o acesso ao atributo ou ao mtodo pois expe o estado do objeto para
prpria classe. manipulao externa, permitindo portanto que
o mesmo seja colocado em um estado
inconsistente
Representao da Classe em UML
Existem diversas ferramentas para modelagem em UML
Exemplo de representao de uma classe em UML

Nome da Classe

Atributos Operaes
(Estado) (Comportamento)
Representao da Classe em UML
Diagrama de Classes da UML
representa as classes de um
escopo de sistema e seus
relacionamentos

Fonte: Devmedia www.devmedia.com.br


Vendo na prtica, ou melhor, no cdigo
Vamos pensar no exemplo de uma conta bancria.

Quais atributos
poderamos escolher para
descrever uma conta
bancria?
Vendo na prtica, ou melhor, no cdigo
Inmeros atributos podem ser escolhidos, vai depender do escopo de nossa
aplicao e abstrao do modelo.
At o momento nossa classe est
apenas com os atributos que so:
numero representa o nmero de
identificao da conta. Seu tipo
inteiro

dono proprietrio da conta. Seu


tipo texto

saldo valor do saldo da conta.


Classe do diagrama UML Classe em cdigo Java
Seu tipo um nmero decimal

limite valor do limite que a conta


tem. Seu tipo um nmero decimal
Ser que esse cdigo consegue ser executado?
Vendo na prtica, ou melhor, no cdigo
Sem o mtodo main, a classe no
poder ser executada, ou seja, no
ser possvel criar um objeto com
base nela.

possvel apenas compilar para


verificar se o cdigo est correto:
c:\ javac Conta.java

Tambm no cabe colocarmos o


mtodo main na classe Conta, essa
classe ter seus prprios mtodos.
Vamos deixar isso para uma classe
especfica para a execuo do
programa
Classe Conta e Classe com o programa principal
Vamos criar uma classe de teste para usarmos nossa classe Conta
Acessando os atributos de Conta
Precisaremos atribuir valores nos
atributos de Conta. Para isso
usaremos a navegao da
classe atravs do ponto .
Adicionando os mtodos da Conta
No exemplo anterior a classe Conta possua apenas os atributos, sem os
mtodos
No programa principal foi colocada uma funo que parece no dele:

Exibir saldo de uma conta uma ao de quem? Da classe Conta ou classe


Programa?
Completando os mtodos em Conta
Completando o modelo da classe Conta
Completando os
mtodos em Conta
Alterando o programa principal para usar
a nova classe

O acesso aos mtodos feito atravs do


.
variavelObjeto.metodo
minhaConta.saca(300.00)

Observao: no Java para nmeros


decimais use ponto no lugar de vrgula
ex:
300,00 erro na execuo
300.00 sem erros
Mtodos podem ter
retorno
Alguns mtodos podem retornar
valores de diferentes tipos:
Inteiro
Double
String
Boolean
Etc.

Foi criado um mtodo novo que


retorna um valor booleano, ou seja,
verdadeiro (true) ou falso (false)

No seria necessrio criar um novo


mtodo, poderia optar em alterar o
atual void saca para boolean saca

O novo mtodo foi criado apenas para


exemplificar melhor
Mtodos podem ter
retorno
Usando no programa
principal chamado
Programa 2

Note que agora alm de utilizar


o mtodo para sacar, possvel
ter a confirmao se o saque foi
ou no efetuado, sem precisar
chamar o mtodo para ver o
saldo.
Mudando de assunto rapidinho: JOptionPane

JOptionPane classe (da API do Java) que permite a criao de caixas de dialogo para a
entrada de dados ou exibio.
Documentao oficial:
http://docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html

Usando JOptionPane para


entrada de dados
Mudando de assunto rapidinho: JOptionPane

Usando JOptionPane
para exibir uma caixa
com sada de texto
Mudando de assunto rapidinho: JOptionPane
Detalhe: o dados que recebido pela caixa de dilogo criada por JOptionPane sempre
String
Ou seja, se o usurio inserir um nmero esse no poder ser usado em clculos
Para isso necessrio fazer a converso para o tipo numrico correto

H tambm:
Integer.parseInt Transformar uma entrada String para inteiro
Float.parseFloat Transformar uma entrada String para float
Etc.
Objetos so acessados por referncias
Ao fazer um:
Conta minhaConta = new Conta();

No estamos colocando o objeto na varivel minhaConta

Estamos colocando a referncia da memria (endereo na memria) na


varivel

Em Java uma varivel nunca um objeto!


Objetos so acessados por referncias
Exemplo:
Memria do Computador

Objeto Conta
Conta conta1 = new Conta();
Objeto Conta
Conta conta2 = new Conta();

As variveis apontam para o endereo


de memria onde os objetos esto Conta1
armazenados Conta2

O comando new sempre cria um


objeto na memria
Objetos so acessados por referncias
Exemplo:
Memria do Computador
Conta conta1 = new Conta(); Objeto Conta
Conta conta2 = conta1;

Ambas as variveis apontaro para o mesmo


objeto. Ou seja uma modificao em conta2
surtir efeito em conta1, j que referenciam o
mesmo objeto Conta1
Conta2
Objetos so acessados por referncias
Exemplo:

Nesse caso c1 e c2 apontam para o mesmo


objeto

Vamos supor que o saldo seja 1000

c1 faz um depsito de 100 e agora a conta


tem 1100
c2 faz um depsito de 200, mas como aponta
para o mesmo objeto o saldo no ser mais
1100 e sim 1300
Objetos so acessados por referncias
Exemplo:

Aqui duas contas so criadas: c1 e c2

Ambas tem new, ou seja, dois objetos foram


criados e referenciados separadamente

Apesar dos valores dos atributos serem os


mesmos, os objetos so diferentes

O programa no compara o valor de atributos


e sim o valor do endereo de memria
referenciado nas variveis c1 e c2
Objetos so acessados por referncias
Melhorando a nossa classe Conta
Imagine que agora vamos armazenar mais
informaes sobre o proprietrio da conta,
como CPF, etc.
Seria adequado fazer isto?

Parece que estamos colocando em Conta


atributos que no so originalmente dela.

Imagine se fossemos aumentar mais ainda a


quantidade de atributos referentes aos
dados dos clientes?
Melhorando a nossa classe Conta
Isso um indicativo de que uma outra classe
necessria. Uma classe que armazene e
gerencie dados apenas dos clientes

Essa classe Cliente pode atuar como um tipo


assim como int, String, double e ser
referenciada dentro de Conta
Melhorando a nossa classe Conta
Exemplo de cdigo usando as trs classes: Cliente,
Conta e Programa
Mtodos construtores
um tipo especial de mtodo que chamado no momento em que o Objeto
instanciado

Responsvel pela alocao de recursos de memria para o uso do Objeto

Quando no declarado explicitamente, o Java cria e executa um construtor default


(padro)

O comando new que cria o Objeto, chama o construtor

Se no forem repassados valores de parmetro para o construtor, o Objeto criado


com valores nulos (null), ou zero se numricos. Em outras linguagens pode ser
necessrio zerar os atributos na criao para no pegar lixo da memria
Mtodos construtores

Note que o nome do construtor o nome da Classe!


possvel com o construtor, criar o Objeto j com valores para os seus
atributos
Mtodos construtores

O cdigo acima faz uso da classe RegAluno


Veja que os atributos do novo aluno foram informados como parmetro na
chamada do construtor.

Вам также может понравиться