Não compila

2 respostas
E
public class staticSuper {
	
	static{
		System.out.println("Super static Block");
	}
staticSuper(){
	System.out.println("Super contructor");
}
}
 public class StaticTests extends staticSuper{
	static int rand;
	
	static{
		rand=(int) (Math.random()*6);
		System.out.println("static block "+rand);
	}
	 StaticTests() {
System.out.println("Constructor");
}
	
	public static void main(String[] args){
		System.out.println("in main");
		StaticTests st=new StaticTests();
	}
}
Esse código não dá certo, o Eclipse dá a seguinte mensagem: [color=red]The public type StaticTests must be defined in its own file[/color]. no:
public class StaticTests extends staticSuper{
	static int rand;

O que será? por que não compila?

2 Respostas

Ataxexe

O motivo é exatamente o da mensagem, não tem como ser mais claro do que isso:

Você precisa definir a classe StaticTests no arquivo StaticTests.java. O Java não permite ter duas classes públicas no mesmo arquivo.

douglaskd

o java não permite 2 classes publicas no mesmo arquivo.

o que você poderia fazer é: ‘define StaticTests in its own file’, ou ‘staticSuper must be defined as private or without public modifield’

Criado 20 de agosto de 2013
Ultima resposta 20 de ago. de 2013
Respostas 2
Participantes 3