Académique Documents
Professionnel Documents
Culture Documents
Java 2
Rodrigo Mello
Ramon Chiara
Renato Villela
1
Programao Orientada a Objetos
O que Classe?
A classe definida como uma estrutura de dados que contm mtodos e
atributos. No paradigma da orientao a objetos, os procedimentos ou funes
(presentes em linguagens estruturadas, tais como C e Pascal) so chamados de
mtodos de uma classe. As variveis, que so declaradas dentro de uma classe,
so chamadas de atributos.
Ao se criar uma classe, o objetivo agrupar mtodos e atributos que estejam
relacionados entre si. Uma classe composta de partes e estas devem representar
alguma funcionalidade segundo o objetivo da classe. Por exemplo, uma classe
Cliente pode ter atributos como nome_cliente, endereco_cliente e outros dados relacionados
ao cliente. Exemplos dos mtodos que atuam sobre tais dados podem ser
inserir_cliente, excluir_cliente e alterar_cliente.
13
O que Objeto?
Enquanto uma classe somente a codificao na forma de um arquivo texto,
um objeto uma instncia de uma classe, ou seja, uma poro de memria
reservada para armazenar os dados e os mtodos declarados na classe. Enfim, um
objeto a instanciao de uma classe na memria.
A classe o cdigo-fonte escrito em um arquivo texto, enquanto o objeto
uma parte de uma aplicao durante o processo de execuo. No objeto, pode-se
executar os mtodos que foram definidos, alm de acessar e alterar dados.
class X {
...
}
Disco
Rgido
Memria
Figur
a1
.1 Objeto do tipo Cliente e sua classe correspondente.
igura
1.1
O que Mensagem?
A mensagem definida como o ato de chamar ou requisitar a execuo de
um mtodo. Portanto um objeto do tipo Cliente apresenta diversos mtodos; o ato
de requisitar a execuo de um desses mtodos conhecido como mensagem.
Um objeto pode enviar mensagens para outros objetos requisitando a execuo
de mtodos.
15
O que Encapsulamento?
a capacidade de restringir o acesso a elementos de uma classe utilizando
qualificadores. Um qualificador uma palavra reservada, que define a visibilidade
de determinado atributo ou mtodo, em uma linguagem orientada a objetos. Por
exemplo, na linguagem C++ existem os qualificadores private, public e protected, e na
linguagem Java existe, ainda, mais um qualificador, conhecido como package.
A funo dos qualificadores definir o acesso aos dados e mtodos de uma
classe. O qualificador public, por exemplo, permite que determinado mtodo ou
atributo seja acessado diretamente por qualquer outro objeto. Observe a seguir a
tabela 1.1 com as caractersticas dos qualificadores na linguagem C++ e Java:
Qualificadores
Java
private
public
protected
package (sem
modificador)
C++
No existe em C++.
Tabela 1
.1 Tabela com os qualificadores nas linguagens Java e C++.
1.1
Mtodos
Atributos
Figur
a1
.2 Encapsulamento em uma classe.
igura
1.2
16
// atributos da classe Clientes - estes podem ser acessados somente dentro da classe
private String nome;
private String endereco;
17
O que Herana?
A herana torna possvel a reutilizao de funcionalidades previamente definidas
em uma classe. A finalidade que a subclasse (aquela que herda as caractersticas de
determinada classe) inclua o comportamento da superclasse (aquela que contm o
comportamento a ser herdado) e adicione mais funcionalidades. No seria interessante
a herana se no houvesse a possibilidade de adicionar funcionalidades subclasse.
A figura 1.3 representa uma subclasse que herda caractersticas da superclasse
e lhe adiciona alguma funcionalidade.
18
19
/*declarao da superclasse*/
class madeira
{
// atributo da classe madeira
String cor;
1. setValor(float novo_x)
2. setValor(float novo_y)
21
22
O que Polimorfismo?
a troca de mensagens entre mtodos de uma subclasse com sua superclasse
e assim sucessivamente. O polimorfismo pode ser observado por meio de mtodos
virtuais de uma classe como representado a seguir:
23
/*declarao da superclasse*/
class Madeira
{
// atributo da classe Madeira
String cor;
// mtodos da classe Madeira
public void escreve_na_tela()
{
escreve();
}
public void escreve()
{
System.out.println("estou na classe Madeira!");
}
} // fim da declarao da superclasse
24
/*declarao da subclasse*/
class Cadeira extends Madeira
{
// mtodos adicionais superclasse
public void escreve()
{
System.out.println("estou na classe Cadeira!");
}
} // fim da declarao da subclasse
Caso se declare um objeto da classe Madeira e execute o mtodo escreve_na_tela,
este faz uma chamada a escreve da classe Madeira retornando o texto:
25
26
// construtores
public cliente()
{
nome = "";
endereco = "";
}
public cliente(String novo_nome)
{
nome = novo_nome;
endereco = "";
}
27
// utilizando o construtor que recebe como parmetro uma string que identifica
// o nome do cliente. executado o cdigo contido nesse construtor
cliente c2 = new cliente("o cliente");
O construtor chamado somente durante o processo de instanciao do
objeto. Nos construtores so definidos comportamentos de iniciao do objeto.
Quando um objeto, por exemplo, do tipo Cliente instanciado, espera-se que o
comportamento inicial do cliente seja satisfeito pelos construtores. Quais tipos de
comportamento so esperados na instanciao de um cliente? Existem parmetros
como nome do cliente, endereo, cidade, estado etc. Por meio dessa anlise de
comportamento so implementados os construtores.
Destrutores so mtodos especiais chamados na finalizao do objeto.
Quando as posies de memria que um objeto ocupa devem ser liberadas, o
destrutor chamado. Na linguagem C++, todo destrutor tem o nome da classe
precedido por ~ (til).
Observe o exemplo em C++ a seguir:
28
// para instanciar
cliente c1 = new cliente();
// para liberar a memria heap
delete c1;
29