Declaração errada no método main

Olá, eu desenvolvir este código, só que propositalmente eu mudei o nome do construtor, e mesmo assim o programa rodou, porque?

código:

public class Semana{
	public Semana(){
			String[] strSemana = new String[]{"","Domingo","Segunda-feira","Terça-feira","Quarta-feira",
			"Quinta-feira","Sexta-feira","Sábado"};		
		for(int cont = 1; cont < 8; cont++){
			System.out.println("-> " + cont + ": " + strSemana[cont]);	
		} 
	}
	public static void main(String[]args){
		new Semanas();
	}
}
  • vc tem outra classe chamada Semanas no mesmo pacote? ou tem algum import para ela?
  • vc recompilou a classe? aliás, tentou? pq não compilará se não existir uma classe chamada Semanas

pode ter rodado se houver uma classe chamada Semanas com S no final…senão meu amigo pode testar que assim não roda de jeito nenhum…

Não, não existe nenhuma classe Semanas.

Só vendo pra crêr!! :shock:

É eu também aposto que se não houver uma classe Semanas não irá rodar.
Mas acho que vc deveria conferir o CLASSPATH, pra confirmar que não aponta para um diretório que contenha uma classe chamada Semanas.
Espereo ter ajudado.
Abraço.

Galera eu compilei no Shell e deu isso:


Semana.java:10: cannot find symbol
symbol : class Semanas
location: class Semana
new Semanas();
^
1 error

já no Netbeans deu o mesmo erro, mas rodou.

[quote=internetws]…
já no Netbeans deu o mesmo erro, mas rodou.[/quote]
Então não compilou e ele usou o último .class que estava ok.

Até!

Hum agora eu entendi, quer dizer que ele armazenou na memória o .class que estava correto. Como a declaração no método MAIN estava errada… ele simplesmente, buscou o .class que havia armazenado que estava bom. Sim mas tenho uma outra dúvida… isso não seria errado, o Netbeans rodar um código sabendo que ele estar errado?

Na verdade ele avisou para ti que estava errado. O que ele fez foi avisar e pegou o último que consegue rodar, evitando a parada de teste.
Deve existir uma opção para ele não continuar caso errado, mas não uso ele usualmente então não sei.

Até!

[quote=maquiavelbona]Na verdade ele avisou para ti que estava errado. O que ele fez foi avisar e pegou o último que consegue rodar, evitando a parada de teste.
Deve existir uma opção para ele não continuar caso errado, mas não uso ele usualmente então não sei.

Até![/quote]

Valeu brother, eu vou dar uma olhada aqui.

Valeu a todos. Muito obrigado.

com certeza vc estava rodando o arquivo compilado antigo…

Bom, então tem alguma coisa errada aí… verifique, pois vc deve estar comendo bola em algum lugar; Pq isso aí não vai compilar de jeito nenhum.