Entendendo a estrutura de uma classe java

     Um dos requisitos básicos de um programador java é compreender a estrutura de uma classe java. O exame para certificação da oracle para OCA programmer I (pré-req para OCJP 7 programmer II), também cobra esses conceitos, então é sobre isso que faleremos abaixo.

Lição 1 - Diferença entre Definition of Java Class, Java Source Code File e Java Bytecodes.

    O código abaixo é uma definição de classe em java:


  1. /** 
  2. * comentário que julgar necessário 
  3. */  
  4. package br.com.oca.entidades;  
  5.   
  6. /** 
  7. * @author Raneves 
  8. * @version 1.0 
  9. */  
  10. public class Blog {  
  11.     private String nome;  
  12.   
  13.     public String getNome() {  
  14.         return nome;  
  15.     }  
  16.   
  17.     public void setNome(String nome) {  
  18.         this.nome = nome;  
  19.     }  
  20.   
  21. }  

figura 1.0

        Conforme podemos observar, definimos a classe Blog que por sua vez reside no arquivo Blog.java (java source code file). Usando um compilador java (javac.exe no windows ou javac no linux/mac) podemos então gerar os bytecodes deste arquivo. Bytecodes são códigos java compilados de maneira que a máquina virtual java consiga interpretá-los. Quando um arquivo .java é compilado outro arquivo de nome igual é gerado com extensão .class.

1.1 - Estrutura de uma classe java

        Vejamos a classe Blog novamente:


  1. /** 
  2. * comentário que julgar necessário             //1
  3. */  
  4. package br.com.oca.entidades;                  //2
  5.   
  6. /** 
  7. * @author Raneves                              //3
  8. * @version 1.0 
  9. */  
  10. public class Blog {                            //4
  11.     private String nome;                       //5
  12.       
  13.     public Blog(String nome){                  //6
  14.         this.nome = nome;  
  15.     }  
  16.   
  17.     public String getNome() {                  //
  18.         return nome;                           //
  19.     }                                          //             7
  20.                                                //
  21.     public void setNome(String nome) {         //
  22.         this.nome = nome;  
  23.     }  
  24.       
  25.     /** 
  26.      * @param String - título do post           //8
  27.      * @return número do post criado  
  28.      */  
  29.     public Integer criarPostagem(String titulo){  
  30.         /* 
  31.          * faz alguma coisa... 
  32.          */  
  33.     }  
  34. }  

figura 1.1

agora a nossa classe Blog sofreu algumas modificações, vamos detalhar cada item de maneira a facilitar o entendimento da estrutura de uma classe:

1 - um simples comentário, começando com /*  e terminando com */  pode-se criar blocos de comentários em java. Repare que um comentário pode aparecer em qualquer lugar, até mesmo antes da declaração de um pacote.

2 - package é o pacote no qual a classe Blog se encontra, essa estrutura de pacotes é importante para organizar o código fonte e evitar conflitos entre classes que por ventura venham a ter o mesmo nome, porém com pacotes distintos. Observe que a classe Blog se encontra no pacote entidades, se abríssemos nosso projeto seria possível ver o arquivo Blog.java dentro da seguinte estrutura de pasta: src/br/com/oca/entidades/Blog.java

3 - embora também seja um comentário, o item 3 faz parte da convenção de documentação de código java, o javadoc. com esse recurso é possível deixar uma descrição na classe de maneira que quem instanciar o objeto Blog poderá ver em sua descrição as informações do comentário, no nosso caso as informações que apareceriam para a classe Blog seriam: autor(Raneves) e versão(1.0)

4 - o nome da classe deve respeitar a convenção java, onde o nome da classe deve começar com letra maiúscula e ter o mesmo nome do arquivo .java (Blog.java)

5 - uma classe possui atributos que ajudam a compor o objeto que ela representa, em nosso exemplo um nome para identificar o Blog.

6 - aqui temos um construtor para a classe Blog. Esse construtor define a maneira como a classe deverá ser instanciada, no exemplo foi definido que sempre que o Blog for instanciado deverá ser informado o nome para o mesmo. É possível ter mais de um construtor para a classe.

7 - além de atributos, comentários e construtores, uma classe também possui métodos.

pontos importantes a serem observados:
a primeira linha de uma classe deve ser o nome do pacote em que ela reside, exceto para comentários que podem aparecer em qualquer parte do código.

    Um outro componente que uma classe possivelmente terá será o import para utilização de uma terceira classe, observe:


  1. package br.com.oca.entidades;  
  2.   
  3. import java.util.Vector;  
  4.   
  5. /** 
  6. * @author Raneves 
  7. * @version 1.0 
  8. */  

figura 1.2

no exemplo acima foi necessário o uso da classe Vector, dessa maneira existiam duas opções de uso.
1 - o uso da classe com nome completo:
        java.util.Vector myVector = new java.util.Vector();  
2 - o uso abreviado:
        Vector myVector = new Vector();  
a segunda opção só é possível devido o import que vimos na figura 1.2
Share on Google Plus

About Raneves

    Blogger Comment
    Facebook Comment

1 comentários: