Vejam essas duas definicoes de programas e digam o que sera impresso ao tentar executar cada uma:
PROGRAMA 1:
publicclassteste{publicstaticvoidmain(String[]args){testeinstaciaTeste=newteste();System.out.println("FIM PROGRAMA 1");}teste(){System.out.println("PROGRAMA1");}}
PROGRAMA 2:
publicclassteste{publicstaticvoidmain(String[]args){testeinstaciaTeste=newteste();System.out.println("FIM PROGRAMA 2");}voidteste(){System.out.println("PROGRAMA2");}}
Eh isso galera falem ai o que acontecera se tentarmos compilar e rodar os programas… LOGICO um de cada vez pq os dois se chaman teste!!
Foi mais uma q me pegou…
publicclassteste{publicstaticvoidmain(String[]args){testeinstaciaTeste=newteste();System.out.println("FIM PROGRAMA 1");instaciaTeste.teste();}voidteste(){System.out.println("PROGRAMA1");}}
E ai vai compilar? Vai rodar?
acho q assim ficou bem claro o significado da palavrinha void na frente do construtor…
Abraços…
[/code]
Bruno_Cardoso
No primeiro codigo vai imprimir
PROGRAMA2
FIM PROGRAMA 2
nos outros dois vai dar erro porque um constructor nao usa a keyword void, né?
PEACE!
mlopes
Uhm…
Não, nesse caso esses “construtores” vão se interpretados como métodos.
[]'s
F
franklinbenini
Bom, não sei se estou certo. Eu acho q imprime o seguinte:
Programa1:
PROGRAMA1 // chamado no constructor
FIM PROGRAMA 1 // chamado no println
Programa2:
FIM PROGRAMA 2
/*
Aqui acho q a string PROGRAMA 2 não é impressa pq a chamada à teste() é p/ construir a classe, e não é chamado como um método da classe. Porém o método da classe existe normalmente
*/
Programa3:
FIM PROGRAMA 1
PROGRAMA1
/* Aqui acho q primeiro é chamado o construtor teste(), depois impresso a primeira string, depois chamado o método da classe teste p/ imprimir outra string
*/
Na minha opinião compila e roda normal pois acho q o compilador distingue bem a diferença entre a chamada do método e do construtor. Não sei se estou certo, preciso testar ainda. Mas caso eu esteja errado peço que me corrijam
Elvis.The.Pelvis
Tá certo!
Lembem-se, entretanto, que o construtor teste() é o construtor implícito.
void teste() é um método como outro qualquer.
boaglio
Pra aumentar a complexidade da pergunta:
publicclassteste{publicstaticvoidmain(String[]args){testeinstaciaTeste=newteste();System.out.println("FIM PROGRAMA 4");instaciaTeste.teste();}teste(){System.out.println("PROGRAMA4");}}
E essa:
publicclassteste{publicstaticvoidmain(String[]args){testeinstaciaTeste=newteste();System.out.println("FIM PROGRAMA 5");instaciaTeste.teste();}teste(){System.out.println("PROGRAMA5");}voidteste(){System.out.println("PROGRAMA 5");}}
Qual seria o resultado ?
duardor
boa …
vo tentar sem compilar ae…
a primeira nem compila e a segunda vai ter saida:
PROGRAMA 5
FIM PROGRAMA 5
PROGRAMA5
agora vo lah compilar pra ver…
Hhehehe
Abraços
duardor
hehe acertei!!!
Tem umas questao pega rato… To juntando um monte e logo coloco um doc pra galera
Abraços
boaglio
Na realidade a ordem é um pouco diferente:
PROGRAMA5
FIM PROGRAMA 5
PROGRAMA 5
Primeiro ele chama o construtor, depois exibe a mensagem
dentro do main e depois ele chama o método.