Classes em Java

Vemos o que são as classes, como cria-las e alguns detalhes adicionais de seu uso.

Por Victorino Blanco González


Publicado em: 29/12/06
Valorize este artigo:
Como comentamos anteriormente no Manual de Java, as classes marcam a estrutura básica de um programa tanto em Java como na programação orientada a objetos em geral.

Uma classe é o produto de enfocar a programação aos dados mais que as funções. Portanto, uma classe é uma coleção de dados e, além disso, para operar com eles uma série de funções próprias da classe. Vejamos por exemplo, a classe "Fichas" definida anteriormente, seu único dado é "a cor" e a única operação que permite é saber a cor da ficha em qualquer momento. Isso permite um acesso restritivo aos dados segundo a função dos mesmos. Neste caso a classe é assim baseando-se na própria vida: Não acredito que ninguém tenha mudado a cor de uma ficha jogando "quatro em linha" e no caso positivo não teria muito boas intenções ao faze-lo.

Além deste método básico de proteção dos dados, Java permite alguns mais que veremos agora.

Quando declaramos uma classe o primeiro que colocamos é o cabeçalho:

public class Fichas { (corpo da classe) }

A primeira palavra nos proporciona a possibilidade de dar permissões de acessos a nossa classe, as permissões são as seguintes:
  • "Public": Uma classe "public" é acessível desde qualquer outra classe, não obstante para que isto aconteça deve ser primeiro acessível o "package" dessa classe "public". Para que um "package" seja acessível deve de estar no diretório que assinala a variável "CLASSPATH" que definimos ao instalar nosso ambiente Java e claro, ter permissão de leitura nesse diretório.
  • "Package": Usar este identificador no cabeçalho da classe é opcional, pois é a opção por padrão em java, ou seja, se escrevermos:
class Fichas {(Corpo da classe)}

É o mesmo que se escrevermos:

package class Fichas {(Corpo da classe)}

As classes "package" ( que podemos entender como as que não são "public" ) são acessíveis somente pelo seu próprio package.

Isto é relativo à acessibilidade das classes. Mais conceitos relativos à acessibilidade fazem referência às variáveis internas de uma classe que já comentamos em um capítulo anterior, e a seus métodos.

Quanto ao nome da classe consideraremos várias coisas. Deve obedecer ao convênio de nomes de Java e coincidir com o nome do arquivo ".java" no qual se salvará a classe.

O normal é que cada classe vá incluída em um único arquivo, porém claro, pode nos interessar por algum motivo colocar várias classes em um único arquivo. Neste caso só pode haver uma classe public que é a que dará o nome a tal arquivo. Neste caso de que não houvesse uma classe public o compilador entenderá que a classe "principal" desse arquivo é a que concorda com o nome do mesmo, portanto evidentemente duas classes com um mesmo nome não são permitidos em um mesmo arquivo.

Por último, para explicar a estrutura de uma classe falarei sobre os elementos habituais na definição de seu corpo.

Primeiro costuma-se declarar, pelo menos, as variáveis internas dessa classe e posteriormente se definem os construtores e os métodos que irá dispor a classe. Entenderemos melhor isso mais adiante.

Na definição de construtores e métodos temos que ter em conta um novo conceito da programação orientada a objetos. A sobrecarga. A sobrecarga consiste em poder ter vários métodos ou construtores com o mesmo nome dentro de uma mesma classe e que não façam as mesmas coisas.

Isto se consegue de uma maneira muito simples, diferenciam-se entre eles mediante o número e tipo de parâmetros que recebem. Vejamos um exemplo:

/*temos dois métodos que podem, por exemplo, obter a área de uma figura geométrica em concreto, poderiam ser:*/

float obterAreaCirculo(Circulo ci){
   /* ... */
}

float obterAreaQuadrado(Quadrado qu){
   /* ... */
}

/*em Java isto pode se abreviar tendo dois métodos sobrecarregados, por exemplo: */

float obterArea(Circulo ci){
   /* ... */
}

float obterArea(Quadrado qu){
   /* ... */
}

/*Na hora de executar o método obterArea se utilizará o que corresponder ao parâmetro que for passado pelo cabeçalho*/






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato