Estrutura do Arquivo .java

Tuesday, Jul 18, 2017

Arquivos com extensão .java tem uma estrutura bem definida, nesse artigo vamos fazer um overview dessa estruta.

Dentro dos arquivos .java há a declaração da class e mais 2 unidade básicas: as variavaveis e os metodos .

Vamos ao primeiro exemplo válido:

meuArquivo.java


Sim esse é um arquivo vazio, o qual é totalmente válido:

Terminal
$ javac meuArquivo.java 
$

Declaração da classe

Ok, mas um arquivo vazio na server de nada, então vamos add a declaração da class

meuArquivo.java
class MeuJava{

}

Agora vamos compilar

Terminal
$ javac meuArquivo.java 
$ ls
meuArquivo.java  MeuJava.class

Repare que nome da class é diferente do nome do arquivo .java e o arquivo gerado tem o nome da class diferente, isso é válido (pelo menos nessa situação).

Além da class existem somente mais 2 possibilidades: enum e interface.

Veja como ficaria

meuArquivo.java

enum MeuJava{

}

ou poderia ser

meuArquivo.java

interface MeuJava{

}

Então vamos falar sobre variáveis.

De forma simples: variáveis guardam informações.

Tanto class como interface e enum pedem ter váriaveis.

Então vamos por variáveis na nossa class para vêr como funciona.

class MeuJava{
	String euSouVariavelForaDoMetodo = "meu texto fora";
	public static void main(String[] args){	
		String euSouVariavelDentroDoMetodo = "meu texto dentro";
		System.out.println(euSouVariavelDentroDoMetodo);
	}
}

Compilando e executando

Terminal
$ javac meuArquivo.java 
$ java MeuJava 
meu texto dentro
$ 

Sobre métodos

Tanto class como interface e enum pedem ter métodos.

Agora criar aquele método conhencido (main, e que é somente válido para class):

class MeuJava{
	public static void main(String[] args){
		System.out.println("entendendo java");
	}
}

Caso esteja apredendo java agora, ire fazer a seguinte analogia

Para começar uma partidade de futebol alguém tem de dar o primeiro toque. Para começar um programa ele tem de iniciar por algum lugar especifico e esse lugar é o metodo main

Agora vamos compilar e executar

Terminal
$ javac meuArquivo.java 
$ java MeuJava 
entendendo java
$

Vemos que ao executar o arquivo gerado informarmos o nome da classe (MeuJava) e não o nome do arquivo.

Outra consideração

Dentro de um arquivo java pode háver mais de uma class, enum ou interface

Veja esse samba do crioulo doido (o código é valido):

meuArquivo.java

enum MeuJava{
	A(1), B(2), C(3);
	int valor;
	MeuJava(int a){
		valor = a;
	}
}

interface MinhaClasse{
	String vidaLocal = "birl";	
	default String  getEnum(){
		System.out.println("nada");
	}
		
}

class OutraCoisa{
	String euSouVariavelForaDoMetodo = "meu texto fora";
	public static void main(String[] args){	
		String euSouVariavelDentroDoMetodo = "meu texto dentro";
		System.out.println(euSouVariavelDentroDoMetodo);
	}
}

Vejamos os compilado

Terminal
$ javac meuArquivo.java 
$ ls
meuArquivo.java  MeuJava.class  MinhaClasse.class  OutraCoisa.class