class computador
{
// variaveis de objecto
final static boolean ligado = true;
final static boolean desligado = false;
String marca;
String processador;
int memoria_RAM;
boolean computador_ligado;
//metodo para botão desligar ligar
void botao(boolean accao)
{
computador_ligado = accao;
}
//Metodo que mostra o estado do computador
void estado_do_computador()
{
System.out.println("Maquina:" + marca + "" + processador + "" + memoria_RAM);
if (computador_ligado == true)
System.out.println("Computador esta ligado");
else
System.out.println("Computador esta desligado");
}
public static void main(String args[]) {
computador comp = new computador();
comp.marca = "HP";
comp.processador = "AMD";
comp.memoria_RAM = 512;
comp.estado_do_computador();
comp.botao(ligado);
comp.estado_do_computador();
comp.botao(desligado);
comp.estado_do_computador();
}
}
ERRO
java.lang.NoClassDefFoundError: examples/Computador (wrong name: examples/computador)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
Exception in thread "main"
Não consigo compreender o erro… este exemplo foi retirado de um livro e ja vi tudo e ta igual ao do livro…
Bom, se estás a desenvolver em Windows, nunca tiveste problemas com ficheiros com letras maiúsculas e minúsculas. Mas é esse o problema - Java foi criado no Unix, portanto ele distingue entre letras maiúsculas e minúsculas. “Computador” é diferente de “computador”.
Deves renomear tua classe para “class Computador” se teu ficheiro chama-se “Computador.java”.
Dei um Ctrl+C, Ctrl+V no teu código e funcinou belezinha…
Maquina:HPAMD512
Computador esta desligado
Maquina:HPAMD512
Computador esta ligado
Maquina:HPAMD512
Computador esta desligado
Eu refiz o codigo trocando computador po Computador e também deu certo…
Eu acho que o problema deve estar no arquivo.java, como falado.
Por convenção, classes ComeçamComMaiusculas e repare, nada de _ ou " ".
Atributos nãoComecamComLetrasMaiusculas sempreMinusculas
metodos tambemComecamComMinusculas()
Vamos ver… vamos tentar entender as mensagens de erros que vc tá recebendo.
O primeiro:
Quer dizer que vc mandou a java runtime executar a classe “examples.Computador”, mas a classe que a runtime encontrou foi “examples.computador” que são duas coisas diferentes.
Isso acontece quando vc tem uma classe chamada computador no “package” examples mas vc dá(ou seja, a ferramenta que vc tá usando dá) o comando [quote]java …opções… examples.Computador[/quote]
então, o segundo erro:
Quer dizer que vc queria executar a classe “computador”(observe: sem “package” nenhuma - em vez de “examples.computador”) e a runtime só encontrou a classe “examples.computador” que, de novo, não é a mesma coisa.
Isso acontece quando vc tem uma classe chamada computador no “package” examples mas vc dá(ou seja, a ferramenta que vc tá usando dá) o comando [quote]java …opções… computador[/quote]
Então é essa a problem do ponto da vista de java runtime. Eu só tenho JBuilder, não tenho Netbeans e então infelizmente não tenho a solução pra vc… vc pd tentar remover esta classe, e tentar de novo, prestando muita atenção com os pacotes é as letras maiúsculas e minúsculas.
Espero que isso pelo menos ajuda um pouquinho.
Teve um bug em JBuilder… 4?(Não me lembro mais) o efeito qual foi que se vc criava uma classe com nome computador, e depois renomeu pra Computador não funcionava mais. Pelo menos é o que aconteceu comigo. Agora com JBuilder 8-X funciona bem essa tipo de coisa.