Você está na página 1de 19

FATEC ADS PROGRAMAO ORIENTADA A OBJETOS

Introduo
Prof. Cristvo Cunha

Objetivos de aprendizagem
Conhecer a histria do paradigma de programao orientada a objetos.
Aprender o conceito de Classe e Objeto.
Implementar uma Classe e Criar objetos a partir dela.
Para incio de conversa
A orientao a objetos uma maneira (paradigma) de se pensar e desenvolver programas. Ao
desenvolver um programa orientado a objeto, voc deve pensar em como a situao que o programa
est automatizando funciona no mundo real, ou seja, quais os objetos envolvidos na situao e como
eles se relacionam.
A partir disso voc deve se preocupar em modelar e implementar o programa de maneira que ele
espelhe a situao existente no mundo real, ou seja, deve criar e manipular as representaes de
objetos existentes no mundo real.
Voc aprender um pouco da histria, dos objetivos da orientao a objetos e aprender dois
conceitos mais importantes da orientao a objetos: Classe e Objeto.
Paradigma de Programao Orientada a Objeto

Paradigma um conjunto de regras que estabelecem fronteiras e descrevem como resolver


os problemas dentro dessas fronteiras. Os paradigmas influenciam nossa percepo; ajudam-nos a
organizar e coordenar a maneira como olhamos para o mundo. (Definio literal).

Entenda paradigma de programao como um estilo, uma maneira de se


desenvolver um programa. Existem outros paradigmas de programao como veremos
adiante.

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Um pouco de histria
O conceito de programao orientada a objeto no algo novo. No final da dcada de 60, a linguagem
Simula67, desenvolvida na Noruega, introduzia conceitos hoje encontrados nas linguagens orientadas
a objetos. Em meados de 1970, o Centro de Pesquisa da Xerox (PARC) desenvolveu a linguagem
Smalltalk, a primeira totalmente orientada a objetos. No incio da dcada de 80, a AT&T lanou a
Linguagem C++, uma evoluo da linguagem de programao C em direo orientao a objetos.
Atualmente, um grande nmero de linguagens incorpora caractersticas de orientao a objeto, tais
como Java, Object Pascal, Python , etc.
Orientao a objeto Conceitos bsicos
O paradigma de programao orientada a objeto baseado em alguns conceitos que definem uma
forma de criar programas para computadores.
A filosofia principal desse paradigma de programao solucionar um problema (via programao)
atravs da representao computacional dos objetos existentes nesse problema (objetos do mundo
real), usando para isso os conceitos mencionados acima. Com isso, essa maneira de se desenvolver
programas fica mais prxima das situaes, dos problemas como eles acontecem no mundo real.
Ser um pouco difcil entender todas as vantagens de OO (Orientao a Objetos). Agora, portanto
vamos mencionar apenas duas:
mais fcil conversar com o cliente que pediu o software se falarmos com objetos que existem
no mundo dele (o mundo do software fica mais perto do mundo real).
O software feito com OO pode ser feito com maior qualidade e pode ser mais fcil de escrever
e, principalmente, alterar no futuro.

J que a programao orientada a objeto se baseia no conceito de objetos


vamos entender um pouco mais sobre objetos?

O nosso mundo est repleto de objetos, sejam eles concretos ou abstratos. Qualquer tipo de objeto
possui atributos (caractersticas) e comportamentos que so inerentes a esses objetos.

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Exemplos de objetos CONCRETOS

1) CANETA
Atributos de qualquer Caneta
- altura
- espessura
- cor
Nesse caso, o nosso objeto Caneta tem os seguintes dados em cada caracterstica:
- altura: 10 cm
- espessura: 2 cm
- cor: rosa
Comportamentos de qualquer Caneta
- desenhar
- etc.
2) PESSOA
Atributos de qualquer Pessoa
- altura
- peso
- idade
Nesse caso, o nosso objeto Pessoa tem os seguintes dados em cada caracterstica:
- altura: 1,80
- peso: 70
- idade: 25
Comportamentos de qualquer Pessoa
- andar
- sorrir
- ler
- etc.

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Exemplos de objetos que NO SO CONCRETOS:


1) RETNGULO
Atributos de qualquer Retngulo
- base
- altura
Nesse caso, o nosso objeto Retngulo tem os seguintes dados em cada caracterstica:
- base: 10
- altura: 5
Comportamentos de qualquer Retngulo
- calcular rea
- calcular permetro
- etc.
2) DISCIPLINA
Atributos de qualquer Disciplina
- cdigo da disciplina
- nome da disciplina
- carga horria
Nesse caso, o nosso objeto Disciplina tem os seguintes dados em cada caracterstica:
- cdigo da disciplina: 1
- nome da disciplina: Linguagem de Programao
- carga horria: 40
Comportamentos de qualquer Disciplina
- listar o nome da disciplina
- etc.
Para usar objetos na programao, primeiro precisamos distinguir entre um objeto real e a
representao de um objeto.
No desenvolvimento de programas, sempre trabalhamos com representaes de objetos. Essa
representao precisa refletir os objetos reais, ou seja, objetos existentes no problema do mundo real
que queremos solucionar.
Por exemplo, um sistema de conta corrente no manipula diretamente os clientes, contas e cheques
(esses so os objetos reais do problema).
Em vez disso, o software deve criar representaes desses objetos, com os mesmos atributos e
comportamentos dos objetos do mundo real. Essa representao chamada de ABSTRAO.
Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod
www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Vamos aprender mais sobre representao de objetos?


Para entender isso, vamos voltar ao exemplo do sistema de conta de corrente.
No mundo real existem vrios objetos Cliente, vrios objetos Conta e vrios objetos Agncia (pode ser
somente um), ou seja, muito provavelmente no existir somente um cliente, uma conta e uma
agncia.
Todos os objetos cliente possuem o mesmo conjunto de atributos, por exemplo, todos os objetos
cliente possuem nome e endereo, assim como todos os objetos conta possuem um nmero, um
saldo, um histrico de transaes e todos os objetos agncia possui um nmero e um nome.
Assim como os atributos, todos os objetos de um mesmo tipo compartilham do mesmo conjunto de
comportamentos, por exemplo, todos os objetos Cliente fazem depsitos e saques.
Apesar de cada objeto ter o mesmo conjunto de atributos, cada objeto possui valores prprios para
cada atributo, ou seja, cada objeto nico.
Segundo o dicionrio Aurlio abstrao significa: Ato de separar mentalmente um ou mais elementos
de uma totalidade complexa (coisa, representao, fato), os quais s mentalmente podem subsistir
fora dessa totalidade.
Essa explicao para objetos do mundo real vale para quando trabalhamos com a representao
desses objetos no contexto de desenvolvimento desse sistema (programao).
Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod
www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Portanto, podemos perceber que o sistema de conta corrente (programa de conta corrente) ser
composto de vrios objetos, cada qual com um conjunto de atributos e comportamento em comum
(se forem do mesmo tipo) e com valores prprios nos seus atributos. A figura abaixo ilustra os vrios
objetos cliente, conta e agncia.

j: Cliente

a: Cliente

c1: Conta

c2: Conta

c: Agencia

O termo instncia frequentemente usado para descrever um objeto com valores prprios em seus
atributos. Por exemplo, observe a figura acima:
-

a uma instncia de Cliente


c1 uma instncia de Conta

Todo objeto deve ter:


1. Estado
2. Comportamento
3. Identidade
1) Estado
representado pelos valores dos atributos de um objeto em um determinado instante do tempo. O
estado do objeto usualmente muda ao longo da existncia do objeto.

Exemplo

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

O valor dos atributos nome e endereo do objeto Joo podem mudar ao longo da existncia desse
objeto. As figuras abaixo ilustram isso: no estado 1 do objeto Joo, o valor do atributo endereo era
Rua J, no estado 2 o valor desse atributo Rua XX.

j: Cliente

j: Cliente

2) Comportamento
Determina como um objeto age e reage: suas modificaes de estado e interaes com outros objetos.
O comportamento determinado pelo conjunto de operaes ou mtodos que o objeto pode realizar.
Operaes ou mtodos so algo que voc pede para o objeto fazer, como fazer um depsito
(comportamento de qualquer objeto do tipo Conta).

Voc deve estar achando estranho: fazer um depsito um comportamento de


qualquer objeto do tipo Conta? Isso mesmo!
Fazer depsito um comportamento de qualquer objeto do tipo Conta e no de qualquer objeto do
tipo Cliente, como voc deve ter pensado a princpio.
Isso acontece porque h diferenas grandes quando pensamos no comportamento de representaes
de objetos, ou seja, objetos do mundo do software.
Ao identificar comportamentos de objetos do mundo do software devemos levar em conta os
seguintes princpios:
Primeiro princpio: no vamos modelar todo o comportamento dos objetos. Exemplo: Clientes
tomam caf no mundo real, mas provavelmente no no software.
Segundo princpio: os comportamentos freqentemente so assumidos por objetos diferentes.
Exemplo: No mundo real, quem faz um depsito? Um Cliente.
No software, quais objetos assumiriam a responsabilidade de fazer um depsito? Objetos do tipo
Conta.

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Por que isso?


A primeira grande regra de programao Orientada a Objeto a seguinte:

Comportamentos so associados aos objetos que possuem os atributos afetados pelo


comportamento.

Um depsito afeta duas coisas, do ponto de vista de um sistema bancrio:


O saldo de uma conta.
O histrico de transaes feitas a uma conta.
Como se pode ver, o depsito afeta apenas atributos de uma Conta. Portanto, esse comportamento
est associado Conta e no ao Cliente, embora, no mundo fsico, seja o Cliente que faz o depsito.
Outros comportamentos associados aos objetos do tipo Conta: fazer um saque, informar seu saldo,
etc.
3) Identidade
Refere-se identificao do objeto. Como cada objeto nico, ou seja, tm seus prprios valores nos
atributos, ele deve ser identificado por algum nome. Mesmo que seu estado seja idntico ao de outro
objeto ele tem identificao prpria.
A identificao do objeto do tipo Agncia mostrado na figura abaixo c. Esse objeto poderia ter
qualquer nome identificando-o.
c: Agencia

Agora voc j sabe que qualquer programa orientado a objeto deve trabalhar com representaes de
objetos que reflitam as caractersticas e comportamento de objetos do mundo real e j aprendeu os
principais conceitos relacionados a objetos.
Falta agora aprender como CRIAR a representao de um objeto dentro de um programa.
No sistema de conta corrente foram identificados, a princpio, 3 tipos ou grupos de objetos: Cliente,
Agncia e Conta.
Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod
www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Sabemos que podero existir vrios objetos de cada um desses tipos e todos eles iro possuir o mesmo
conjunto de atributos e comportamentos do seu tipo.
Para criar uma representao de cada objeto dentro do programa, devemos antes criar uma estrutura,
uma espcie de molde ou template que represente os atributos e comportamentos do tipo do objeto.
Essa estrutura chamada de classe.
Portanto, devemos ter uma classe Cliente, uma classe Agncia e uma classe Conta.
a partir dessa estrutura conhecida como classe que iremos criar as representaes de objetos que
precisamos para desenvolver o programa, ou seja, precisamos criar a estrutura (classe) apenas uma
vez e, a partir dela, sero criadas as representaes dos objetos.

Ateno!
Os conceitos de classe e objeto so os mais bsicos e importantes da orientao a objetos. O correto
entendimento desses conceitos imprescindvel para o entendimento dos demais conceitos da OO.
Vamos aprender mais conceitos sobre Classes e Objetos?
Uma classe a descrio de atributos e comportamentos de um grupo de objetos com propriedades
similares (atributos) e comportamento comum (operaes ou mtodos).
Por representar atributos e comportamento de um determinado tipo de objeto que existe no mundo
real, uma classe uma abstrao da realidade, pois nela esto especificados somente parte dos
atributos e comportamentos de um objeto do mundo real. Somente parte, porque no so todos os
atributos e comportamentos dos objetos do mundo real que interessam ao sistema.
A figura a seguir, ilustra a representao grfica das classes do sistema de conta corrente. Na primeira
parte da figura est o nome da classe, na parte do meio, esto os atributos e, na parte final, est o
comportamento (mtodos ou operaes). Observe que a classe Conta e Agencia ainda no esto com
os comportamentos definidos. Faremos isso na medida em que avanarmos nos conceitos de OO.

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

transacao: String
insereNome()
insereEndereco()
insereCpf()
retornaNome()
retornaEndereco()
retornaCpf()

Um objeto uma instncia de uma classe. Essa instncia possui valores prprios em cada atributo
definido na classe. As figuras a seguir ilustram a classe Cliente e os vrios objetos (instncias) da classe
Cliente.

j: Cliente

a: Cliente

insereNome()
insereEndereco()
insereCpf()
retornaNome()
retornaEndereco()
retornaCpf()

A notao que estamos utilizando para representar classes e objetos a utilizada pela UML (Unified
Modelling Language) ou Linguagem de Modelagem Unificada. A UML no uma linguagem de
programao e sim, uma linguagem composta de vrios diagramas (cada qual com seu conjunto de
smbolos grficos) que expressam como um sistema orientado a objetos deve funcionar. Ela utilizada
nas fases iniciais do desenvolvimento de um software, ou seja, antes da programao propriamente
dita, com o objetivo de especificar e documentar o funcionamento do sistema. O diagrama que iremos
utilizar o Diagrama de Classes que especifica as classes do sistema e o relacionamento entre elas.
Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod
www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Agora que voc j estudou a diferena entre CLASSE e OBJETO, vamos partir para a parte prtica, ou
seja, voc vai aprender a implementar (programar) uma classe e a criar objetos a partir dela. Voc
continuar aprendendo outros conceitos nas prximas aulas, porm, para que os conceitos no fiquem
muito abstratos para voc, vamos ver como isso funciona na prtica de maneira paralela.

Para finalizar essa seo vamos fazer uma pequena reviso:


Um programa orientado a objeto composto por vrios objetos do mesmo tipo e de outros tipos que
se relacionam. Chamamos esses objetos do mundo do software de representaes de objetos.
Como num programa muito provavelmente existiro vrios objetos do mesmo tipo, devemos criar uma
estrutura ou template que represente os atributos e comportamentos desses objetos do mesmo tipo,
essa estrutura chamada de classe. Portanto classe uma estrutura a partir da qual os objetos (do
software) so criados.

Importante!
O entendimento dos conceitos de orientao a objetos que j vimos e, dos demais que esto por vir,
so de vital importncia para o desenvolvimento de programas orientado a objetos e sua utilizao
independe da linguagem utilizada para implementao dos programas. Quer dizer que, para
desenvolver qualquer programa OO, preciso aplicar esses conceitos na implementao do programa,
utilizando para isso, qualquer linguagem de programao orientada a objetos.

Implementando uma Classe e Criando Objetos a partir dela


A implementao de uma classe s tem sentido se, no contexto do desenvolvimento de um sistema
orientado a objeto, for identificada a necessidade de existncia de um conjunto de objetos com
atributos e comportamentos em comum. A partir do momento que esses objetos com atributos e
comportamento em comum so identificados, j existe a necessidade de criar a estrutura (classe)
que os defina.
Voc ir aprender como implementar na linguagem Java uma classe e como criar objetos (instncias) a
partir dela. Pode-se falar tambm no termo instanciar objetos a partir de uma classe.
No iremos neste momento demonstrar o processo de identificao de objetos num dado problema,
isso ser feito nas prximas aulas.
A viso prtica desses dois conceitos (Classe e Objeto) facilitar o entendimento dos demais conceitos.

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Implementao da Classe Cliente


A seguir ser apresentada uma implementao resumida e mais didtica da classe Cliente.
Didtica porque tem como objetivo facilitar o entendimento nesse primeiro momento.
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha

1 public class Cliente{


2
private String nome, endereco;
3
private int cpf;
4
5
public Cliente( ){
6
nome = ;
7
endereco = ;
8
cpf = 0;
9
}
10
public void insereNome(String sNome){
11
nome = sNome;
12
}
13
14
public void insereEndereco(String sEndereco){
15
endereco = sEndereco;
16
}
17
18
public void insereCpf(int iCpf){
19
cpf = iCpf;
20
}
21
public String retornaNome(){
22
return nome;
23
}
24
25
public String retornaEndereco(){
26
return endereco;
27
}
28
29
public int retornaCpf(){
30
return cpf;
31
}
32}

Vamos analisar a implementao da classe Cliente linha a linha.


Relembrando: para desenvolver qualquer programa voc deve editar o programa num editor de texto,
salv-lo num local conhecido e, logo aps, compil-lo. O mesmo processo deve ser feito com as classes
que voc desenvolver daqui para frente. Detalhe: classes que representam atributos e comportamento
de objetos NO SO executadas.

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Linha 1: definio inicial da classe. Comea com a palavra public (veremos mais adiante qual o
significado dessa palavra) seguida da palavra class e seguida do nome da classe.

Regras para Nomeao de Classes


Para se nomear classes, existem alguns requisitos que devem ser observados:
Classes so nomeadas com um substantivo no singular;
O nome de uma classe deve iniciar com a primeira letra maiscula;
No devem ser utilizados smbolos de sublinhado (_) - nomes compostos por mltiplas
palavras so organizados com todas as palavras juntas, onde a primeira letra de cada uma fica
em maiscula.
Exemplos: Aluno, Professor, FolhaPagamento.

Linhas 2 e 3: definio dos atributos definidos para a classe. Na definio dos atributos deve-se utilizar
a palavra private (veremos mais adiante o significado dessa palavra) seguido do tipo de dado de cada
atributo e do nome do atributo. No caso da classe Cliente, os dois atributos nome e endereo devem
armazenar dados do tipo String (literal) e o atributo cpf deve armazenar valores do tipo int (numricos
inteiros).

Regras para Definio de Atributos


Normalmente, atributos so colocados no incio da definio da classe, depois do primeiro { .
Tambm pode ser colocados bem no final, antes do ltimo }.
Devem comear com letra minscula.

Linha 5: depois da definio do nome da classe e dos atributos da classe, segue-se a definio dos
comportamentos, no contexto da implementao, conhecidos como mtodos. Por enquanto, os
comportamentos ou mtodos definidos para a classe Cliente so simples. Na medida em que formos
avanando, mais comportamentos ou mtodos podero ser implementados. No momento,
implementamos quatro mtodos: Cliente( ), insereNome( ), insereEndereco( ), retornaNome( ),
retornaEndereco( );
O primeiro mtodo implementado se chama Cliente( ) e se enquadra na categoria dos mtodos
construtores. Um mtodo construtor SEMPRE deve ter o mesmo nome da classe e no deve
Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod
www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

especificar no cabealho nenhum tipo de retorno, nem mesmo deve ser utilizada a palavra void (o que
acontece nos demais mtodos que no retornam nada mtodos do tipo procedimento). Todo o
mtodo construtor s executado no momento em que um objeto dessa classe criado (instanciado).
Vamos saber mais sobre mtodos construtores no momento da explicao da criao de objetos. Saiba
por enquanto que importante (no obrigatrio) que cada classe tenha ao menos um mtodo
construtor implementado.
Linhas 6 a 8: linhas de cdigo do mtodo construtor. O que se pode programar dentro de um mtodo
construtor?
Qualquer coisa que se quer que acontea quando um objeto do tipo Cliente, no caso, for criado,
porque o cdigo que est dentro de um mtodo construtor executado sempre que um objeto desse
tipo for criado.
Porm, normalmente se programa para que os atributos do objeto sejam inicializados. No caso do
nosso mtodo construtor, os atributos nome, endereo foram inicializados com Strings vazias () e o
atributo cpf com o valor 0.
Linha 10: nessa linha est o comportamento ou mtodo chamado insereNome( ). Esse tipo de
comportamento tpico de qualquer objeto do tipo Cliente, pois todo o cliente pode ter seu nome
alterado (ou inserido). No caso de um sistema OO, quem executa esse comportamento o prprio
objeto Cliente.
A implementao desse mtodo ou comportamento feita atravs de um procedimento (veja que o
tipo de retorno void, ou seja, essa subrotina no retorna nenhum valor) que recebe como parmetro
o novo nome do cliente. Esse valor recebido em uma varivel de memria do tipo String que
chamamos de sNome. O nome da varivel de memria que receber o novo valor do atributo nome
pode ser qualquer um, porm essa varivel deve ser declarada como sendo do tipo String, j que o
valor dela ser atribudo ao atributo nome que tambm do tipo String (prxima linha).
Linha 11: atribuio do novo nome do cliente ao atributo nome. O atributo nome recebe o contedo
da varivel sNome, que contm o novo nome do cliente.
Linha 12: fim do mtodo insereNome( );
Linhas 14 a 16: implementao do mtodo ou comportamento insereEndereco(). Esse mtodo altera
(ou insere) o endereo de qualquer objeto Cliente.
Linhas 18 a 20: implementao do mtodo ou comportamento insereCpf(). Esse mtodo altera (ou
insere) o cpf de qualquer objeto Cliente.
Linha 21: nessa linha est o comportamento ou mtodo chamado retornaNome( ). Esse tipo de
comportamento tpico de qualquer objeto do tipo Cliente, pois todo o cliente pode ser capaz de
fornecer (retornar) seu nome. No caso de um sistema OO, quem executa esse comportamento o
prprio objeto Cliente.
Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod
www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

A implementao desse mtodo ou comportamento feita atravs de uma funo (veja que o tipo de
retorno String) que retorna o nome do cliente, ou seja, o valor armazenado no atributo nome do
objeto Cliente.
Linha 22: retorno (usar palavra return) do contedo do atributo nome.
Linhas 25 a 27: implementao do mtodo ou comportamento chamado retornaEndereco() .
Linhas 29 a 31: implementao do mtodo ou comportamento chamado retornaCpf( ).
Linha 32: final da implementao da classe.
Depois de implementar a classe, voc deve compilar, mas no deve executar. Esse tipo de classe no
executvel, ela no possui mtodo main ( ). Essa classe s possui a finalidade de ser uma estrutura ou
template (modelo ou receita de bolo) para a criao de objetos desse tipo.
Criar objetos a partir da classe Cliente
Depois que a classe Cliente for implementada e compilada, ela est pronta para ser usada, ou seja,
possvel criar objetos do tipo Cliente a partir dela.
Abaixo est a implementao de uma classe que possui um mtodo main( ), ou seja, uma classe
executvel. Dentro desse mtodo estamos criando um objeto do tipo Cliente e manipulando esse
objeto.
Mas o que de fato criar um objeto? Lembre-se sempre: agora estamos falando de objetos no
contexto de um software. Voc entender isso nas linhas seguintes.
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha
Linha

1 public class UsaCliente{


2 public static void main(String args[]) {
3
Cliente a = new Cliente();
4
a.insereNome(Ana);
5
a.insereEndereco(Rua A);
6
a.insereCpf(12352241123);
7
System.out.println(a.retornaNome());
8 }
9 }

Vamos analisar a implementao da classe UsaCliente linha a linha:

Relembrando: para desenvolver qualquer programa voc deve editar o programa num editor de texto,
salv-lo num local conhecido e logo aps compil-lo. O mesmo processo deve ser feito com as classes

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

que voc desenvolver daqui para frente. Detalhe: classes que representam atributos e comportamento
de objetos NO SO executadas.

Linha 1: definio inicial da classe. Comea com a palavra public seguida da palavra class e seguida do
nome da classe.
Linha 2: definio do mtodo main( ). Essa definio sempre a mesma utilizada nos programas
anteriores. Todo o programa que iremos implementar estar dentro do mtodo main( ).
Linha 3: essa linha cria um objeto do tipo Cliente, chamado a.

Criar um objeto alocar (reservar) um espao na memria do computador para armazenar valores
para os atributos definidos na classe desse objeto.

A explicao de criar um objeto similar criao (declarao) de uma varivel de memria. Quando
declaramos uma varivel de memria tambm estamos reservando espao na memria para
armazenar algum valor. Essa varivel de memria deve ter um nome e deve ter um tipo de dados e
nela s poder ser armazenado valores desse tipo.
O mesmo acontece com a criao de um objeto. Ao criar um objeto, precisamos dar um nome
(identificao) para ele e, nesse espao de memria que estamos declarando, s podero ser
armazenados valores correspondentes aos atributos definidos no tipo (classe) desse objeto.
Essa explicao para criao de objeto simples e ser utilizada no momento para facilitar seu
entendimento. Posteriormente, essa explicao ser refinada.
Portanto, sempre que se quer criar um objeto deve-se usar a seguinte sintaxe:

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Aps a execuo dessa linha, um objeto, ou seja, uma rea de memria alocada.
Na instruo da linha 3, estamos criando um objeto chamado a. Note cuja a sintaxe igual a definida
acima para criao de objetos. Sempre que um objeto criado, o mtodo construtor definido na classe
desse objeto chamado (invocado) e, tudo o que est programado nesse mtodo, executado.
O que foi programado no mtodo construtor da classe Cliente?
A inicializao de todos os atributos do objeto Cliente, portanto ao criar o objeto cliente, todos os seus
atributos j estaro inicializados.
A figura abaixo ilustra de maneira simples o objeto alocado na memria e seus atributos inicializados.

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

A partir desse momento, poder ser chamado qualquer comportamento ou mtodo definido na classe
cliente. Isso ser feito nas linhas seguintes.
Linha 4: depois que o objeto criado, podemos invocar seus comportamentos ou mtodos. Nessa
linha estamos chamando o mtodo insereNome(Ana) e passando como parmetro o novo nome do
cliente.
Observe que o mtodo est precedido do nome do objeto e SEMPRE deve ser assim. Qualquer
comportamento ou mtodo deve ser chamado precedido do nome do objeto.
Quando se chama qualquer mtodo definido em uma classe, o cdigo implementando nesse mtodo
executado. Nesse caso, o mtodo ir alterar o nome do objeto a.
Qual o valor do atributo nome do objeto a ANTES da chamada desse mtodo?
(String vazia) porque quando o objeto foi criado, esse valor foi armazenado l. Isso aconteceu no
momento que o mtodo construtor foi chamado.
Qual o valor do atributo nome do objeto a DEPOIS da chamada desse mtodo?
Ana porque foi esse o valor passado para o mtodo. Lembre-se que o mtodo insereNome(String
sNome) recebe um valor como parmetro e, esse valor, armazenado no atributo nome.
Logo, aps a execuo dessa linha o objeto est com o seguinte estado:

Linha 5: chamada do mtodo insereEndereco( ) que ir inserir (alterar) o endereo do objeto a. Logo
aps a execuo dessa linha, o objeto est com o seguinte estado:

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849

Linha 6: chamada do mtodo insereCpf( ) que ir inserir (alterar) o CPF do objeto a.


Logo, aps a execuo dessa linha, o objeto est com o seguinte estado:

Linha 7: impresso do nome do cliente. Para isso chamamos o mtodo retornaNome( ) do objeto a.
Como esse mtodo uma funo e toda a funo retorna valor, ele no pode ser chamado isolado
numa linha de instruo. Deve ser feito alguma coisa com o valor retornado do mtodo, ou imprimir
ou armazenar em outra varivel de memria.
Linha 8: fim do mtodo main().
Linha 9: fim da classe UsaCliente.
Observao: Essa classe utiliza apenas 1 objeto, mas normalmente trabalharemos com programas que
envolvem a criao de vrios objetos. O procedimento explicado para criao e utilizao de 1 objeto
o mesmo para vrios objetos.

Boa Diverso!
timos Estudos!

Faculdade de Tecnologia de Guaratinguet Prof. Joo Mod


www.fatecguaratingueta.edu.br - e-mail: fatecgt@fatecguaratingueta.edu.br
Av. Prof. Joo Rodrigues Alckmin, 1501 Jardim Esperana, Guaratinguet SP / CEP 12517-475
Tel. (12) 3126-3921 - 3125-7785 - 3126-4849