Para que serve o .class do java?
Quando criamos uma classe, ao usar algum método aparece um .class para ser usado, o que ele retorna? O que quer dizer?
Exemplo: ObjetoExemplo.class;
Para que serve o .class do java?
Quando criamos uma classe, ao usar algum método aparece um .class para ser usado, o que ele retorna? O que quer dizer?
Exemplo: ObjetoExemplo.class;
É o seu .java compilado em bytecode pra rodar na java virtual machine
É exatamente o que o @peczenyj disse.
Para exemplificar, crie uma classe chama MinhaClasse.java. Inclua esse código nela:
class MinhaClasse {
public static void main(String[] args) {
System.out.println("Olá Mundo!");
}
}
Pelo cmd do Windows, navegue até a pasta em que esse arquivo está.
Escreva javac MinhaClasse.java
javac
significa Java Compiler
Ao fazer isso você verá que o arquivo .class aparecerá no mesmo diretório da sua classe.
Para executar o seu código java, você deve chamar esse .class, que é o que a JVM entende de fato.
Para executar digite o comando java MinhaClasse
Não é necessário o .class no final.
Você verá “Olá Mundo” no console do cmd.
Em outras palavras, para executar algum código em java, é necessário que esse seja compilado.
Isso é transparente quando utilizamos IDE e o funcionamento real pode acabar passando despercebido.
Espero ter ajudado.
Abs.
eu omiti varios detalhes
por exemplo um arquivo .java pode der uma unica classe publica mas pode ter varias classes ( não publicas ). vc ainda pode ter classes anonimas e inner/static classes.
cada classe, interface ou enumeração vai ser convertida em um .class pelo processo de compilação
alias é interessante usar o aplicativo javap
no .class pra ver a estrutura interna.
e o que é um jar? um zip com os seus .class ( basicamente )
Pessoal, vocês não entenderam minha pergunta. Eu não estou me referindo ao arquivo, mas sim ao código.
Exemplo:
'
public class Teste{
public static void main(String[] args){
// aqui vou usar de alguma forma a MinhaClasse chamando com um .class.
// MinhaClasse.class; <<--- O QUE ISSO FAZ?
}
}`
Outro exemplo:
`pf.setTipoDocumento(Enum.valueOf(TipoDocumento.class, “CPF”));
// O QUE ESSE TipoDocumento.class FAZ?O QUE RETORNA?`
Vamos la
Uma classe pode possuir atributos. São os atributos static
Cada classe java possui um atributo class
Isso retorna um objeto do tipo Class
É um objeto que representa a própria classe.
Mas isso não seria o this?
Quando eu vou referenciar a classe dentro dela própria eu uso o this, quando quero usar a própria classe “fora dela” eu uso o .class? Ficou confuso…
this pode ser uma referencia ao construtor ou a própria instância.
Instância != Classe
vamos ao seu exemplo
Enum.valueOf(TipoDocumento.class, “CPF”)
Se TipoDocumento for uma enumeração ( enum ) então isso é uma forma de pegar o valor CPF a partir da string “CPF” - por que estão fazendo isso? não imagino. sera que gostam de sofrer?
https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html