sem problemas… mas fica muito bagunçado e seu código perderá a idéia de encapsulamento…
É preferível utilizar uma classe com o método MAIN separada. Assim seu código ficará mais fácil de depurar e encapsular seus atributos ou métodos.
B
Bruno_Laturner
Para código “Hello World” assim, não tem por que separar. Agora, em um sistema de verdade, tudo fica separado naturalmente.
P
pedrolima88
hmmmm, valeu!
e me tirem otura duvida?
cada classe tem que ter um arquivo soh para ela certo ?
pois fiquei na duvida em declarar duas classes em um mesmo arquivo pois pdoeria conflitar com o nome do arquivo.
Deve fazer o que? separar classe por classe em arquivos ou uni-los?
B
Bruno_Laturner
Em Java, duas classes públicas tem que estar em arquivos diferentes.
Aliás, querer deixar tudo dentro de uma classe só é preguiça. Como disse, é natural que tudo vá se separando, cada objeto cuidando da própria vida.
P
pedrolima88
Opa! show de bola valeu!
eu pensei que botando tudo denro do mesmo arquivo ocuparia menos espaco, tudo bem que nao eh nem 1 mega… mas ocuparia menos, mas de qualquer forma vou seguir as normas
valeu obrigado!
danilopelegrino
pedrolima88:
hmmmm, valeu!
e me tirem otura duvida?
cada classe tem que ter um arquivo soh para ela certo ?
pois fiquei na duvida em declarar duas classes em um mesmo arquivo pois pdoeria conflitar com o nome do arquivo.
Deve fazer o que? separar classe por classe em arquivos ou uni-los?
Aproveitando a duvida do nosso amigo pedro eu pergunto: "SE EU DECLARAR DUAS CLASSES EM UM UNICO ARQUIVO, QUANDO COMPILAR NAO VAI DAR ERRO? kkkkkkk eis a questãooooooo
digo isso pq pelo que sei, cada arquivo deve ter o nome identico ao da classe, então se eu tiver duas clases com nomes distintos em um mesmo arquivo, isso vai gerar erro de compilação correto??
Vamos aguardar alguem mais graduado nos tirar esta duvida
abraçooo t+
wswillianss
danilopelegrino:
pedrolima88:
hmmmm, valeu!
e me tirem otura duvida?
cada classe tem que ter um arquivo soh para ela certo ?
pois fiquei na duvida em declarar duas classes em um mesmo arquivo pois pdoeria conflitar com o nome do arquivo.
Deve fazer o que? separar classe por classe em arquivos ou uni-los?
Aproveitando a duvida do nosso amigo pedro eu pergunto: "SE EU DECLARAR DUAS CLASSES EM UM UNICO ARQUIVO, QUANDO COMPILAR NAO VAI DAR ERRO? kkkkkkk eis a questãooooooo
digo isso pq pelo que sei, cada arquivo deve ter o nome identico ao da classe, então se eu tiver duas clases com nomes distintos em um mesmo arquivo, isso vai gerar erro de compilação correto??
Vamos aguardar alguem mais graduado nos tirar esta duvida
abraçooo t+
Testa este código e depois me diga o que aconteçeu:
Contatos.java
packageorg.wss;classCliente1{privateStringnome;publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}}classCliente2{privateStringnome2;publicStringgetNome2(){returnnome2;}publicvoidsetNome2(Stringnome2){this.nome2=nome2;}}classTesta{publicstaticvoidmain(String[]args){Cliente1c1=newCliente1();Cliente2c2=newCliente2();c1.setNome("Absolon de Jesus Souza");c2.setNome2("Guilhermina Bostanssa");System.out.println("Cliente1: "+c1.getNome());System.out.println("Cliente2: "+c2.getNome2());}}
danilopelegrino
wswillianss:
danilopelegrino:
pedrolima88:
hmmmm, valeu!
e me tirem otura duvida?
cada classe tem que ter um arquivo soh para ela certo ?
pois fiquei na duvida em declarar duas classes em um mesmo arquivo pois pdoeria conflitar com o nome do arquivo.
Deve fazer o que? separar classe por classe em arquivos ou uni-los?
Aproveitando a duvida do nosso amigo pedro eu pergunto: "SE EU DECLARAR DUAS CLASSES EM UM UNICO ARQUIVO, QUANDO COMPILAR NAO VAI DAR ERRO? kkkkkkk eis a questãooooooo
digo isso pq pelo que sei, cada arquivo deve ter o nome identico ao da classe, então se eu tiver duas clases com nomes distintos em um mesmo arquivo, isso vai gerar erro de compilação correto??
Vamos aguardar alguem mais graduado nos tirar esta duvida :)
abraçooo t+
Testa este código e depois me diga o que aconteçeu:
Contatos.java
packageorg.wss;classCliente1{privateStringnome;publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}}classCliente2{privateStringnome2;publicStringgetNome2(){returnnome2;}publicvoidsetNome2(Stringnome2){this.nome2=nome2;}}classTesta{publicstaticvoidmain(String[]args){Cliente1c1=newCliente1();Cliente2c2=newCliente2();c1.setNome("Absolon de Jesus Souza");c2.setNome2("Guilhermina Bostanssa");System.out.println("Cliente1: "+c1.getNome());System.out.println("Cliente2: "+c2.getNome2());}}
Compilou normal, porem ao executar apresentou o seguinte erro:
Exception in thread "main" java.lang.NoClassDefFoundError: Testa (wrong name: or
g/wss/Testa)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Acho que fiz algo errado kkkkkkk O nome da classe tem que ser Testa.java??
ViniGodoy
A regra é essa: Um arquivo Java deve ter no máximo uma única classe pública e, se for esse o caso, de nome igual ao do arquivo.
Isso também quer dizer que ele pode ter quantas classes você quiser, desde que as demais não sejam públicas.
E também quer dizer que você não é obrigado a ter uma classe pública.
Faz o seguinte, escreva public antes da classe Testa do exemplo anterior e renomeie o arquivo para Testa.java
Deve compilar e rodar normalmente.
Agora, via de regra, é uma boa prática deixar classes em arquivos separados. Geralmente, quando há a necessidade de juntar duas classes num mesmo arquivo, é muito provável que uma classe possa se tornar inner class da outra.
wswillianss
desculpe eu esquecir de colocar o public na frente do Testa e mudar o nome do arquivo para Testa
danilopelegrino
ViniGodoy:
A regra é essa: Um arquivo Java deve ter no máximo uma única classe pública e, se for esse o caso, de nome igual ao do arquivo.
Isso também quer dizer que ele pode ter quantas classes você quiser, desde que as demais não sejam públicas.
E também quer dizer que você não é obrigado a ter uma classe pública.
Faz o seguinte, escreva public antes da classe Testa do exemplo anterior e renomeie o arquivo para Testa.java
Deve compilar e rodar normalmente.
Agora, via de regra, é uma boa prática deixar classes em arquivos separados. Geralmente, quando há a necessidade de juntar duas classes num mesmo arquivo, é muito provável que uma classe possa se tornar inner class da outra.
é por isso que eu gosto desse forum heheeh Gente inteligente e disposta a lhe dar as respostas corretas.
vVlw mesmo Vini excelente explicação abraçooooooooo fuiiii