Para que serve o .class?

7 respostas
P

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;

7 Respostas

peczenyj

É o seu .java compilado em bytecode pra rodar na java virtual machine

igorventurelli

É 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.

peczenyj

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 )

P

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?`

peczenyj

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.

P

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…

peczenyj

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

Criado 8 de dezembro de 2016
Ultima resposta 9 de dez. de 2016
Respostas 7
Participantes 3