Programa criando varias classes

2 respostas
J

Ola pessoal, eh meu primeiro post aqui no forum entao me desculpem se fizer algo errado.

Eh o seguinte…eu to fazendo meu primeiro projeto bem simples de java e quando fui na pasta BUILD>Classes pra ver se tava tudo certo, vi que o programa esta criando varias classes, por exemplo: tenho uma classe chamada Cidade e na pasta tem as classes cidade.class, cidade1.class , cidade2.class …ateh cidade6.class.

Isso eh errado nao eh ?? como arrumo isso?

Obrigado

2 Respostas

E

Não, não está errado - mas você copiou corretamente os nomes dos arquivos ? Provavelmente são

cidade.class, cidade$1.class ,cidade$2.class … cidade$6.class

Vou explicar porquê.

Quando você escreve um programa desse jeitinho aqui:

jbutton.addActionListener (new ActionListener() {
        public void actionPerformed(ActionEvent e) { 
            ...
        }
    });

você está criando uma instância de uma “classe anônima” (sem nome), que herda da classe ou implementa a interface indicada depois do “new”.
Neste caso, foi criada uma classe anônima que implementa a interface ActionListener.

Só que o compilador Java não pode simplesmente criar uma “classe sem nome” para gerar um arquivo .class referente a ela. Em vez disso, ele pega o nome da sua classe, e acrescenta um “$” + um número, para poder batizar o arquivo correspondente a essa classe anônima.

Como pode haver várias classes anônimas dentro da definição de um arquivo de classe (pense em uma janela que tem vários botões, portanto vários eventos) então cada uma dessas classes é diferenciada por um número.

Essas classes não são públicas e não podem ser referenciadas diretamente dentro do seu código. Fazer algo como “new Classe$1()” não vai funcionar do jeito que você quer.

J

Nao consegui entender mto bem a teoria, mas eh bom saber que nao esta errado entao.

Mto obrigado pelo esclarecimento!

Criado 20 de agosto de 2012
Ultima resposta 20 de ago. de 2012
Respostas 2
Participantes 2