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:
- /**
- * comentário que julgar necessário
- */
- package br.com.oca.entidades;
- /**
- * @author Raneves
- * @version 1.0
- */
- public class Blog {
- private String nome;
- public String getNome() {
- return nome;
- }
- public void setNome(String nome) {
- this.nome = nome;
- }
- }
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:
- /**
- * comentário que julgar necessário //1
- */
- package br.com.oca.entidades; //2
- /**
- * @author Raneves //3
- * @version 1.0
- */
- public class Blog { //4
- private String nome; //5
- public Blog(String nome){ //6
- this.nome = nome;
- }
- public String getNome() { //
- return nome; //
- } // 7
- //
- public void setNome(String nome) { //
- this.nome = nome;
- }
- /**
- * @param String - título do post //8
- * @return número do post criado
- */
- public Integer criarPostagem(String titulo){
- /*
- * faz alguma coisa...
- */
- }
- }
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:
- package br.com.oca.entidades;
- import java.util.Vector;
- /**
- * @author Raneves
- * @version 1.0
- */
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
;)
ResponderExcluir