Erro no programa Semaforo

Gente, fiz o codigo abaixo mas nao esta rodando. Alguem pode me ajudar dizendo o que esta faltando, por favor !

public class Semaforo {
	public static final int vermelho = 0;
	public static final int amarelo = 1;
	public static final int verde = 2;
	
	private int corAtual;
    private String nome;
    
	public Semaforo() {
		this (vermelho);
	}
	public Semaforo(int cor) {
		this(cor,"semaforo");
	}
	public Semaforo(String nome){
		this(vermelho,nome);
	}
	public Semaforo(int cor, String nome){
		corAtual=cor;
		this.nome=nome;
	}
	public int muda() {
		switch(corAtual){
		case vermelho:
			corAtual = verde;
			break;
		case amarelo:
			corAtual = vermelho;
			break;
		case verde:
			corAtual = amarelo;
			break;
		}
	   return corAtual;	
	}
	public int getCorAtual(){
		return corAtual;
	}
	public String getNome(){
		return nome;
	}
	  public String getNomeCorAtual(){
		  switch(corAtual){
		   case amarelo:
			  return "amarelo";
		   case verde:
			  return "verde";
		   case vermelho:
			  default:
				      return "vermelho";
	      }
	  }
	  
	 public String toString(){
		 return nome + " esta " + getNomeCorAtual();
	}
}	 

Alguem pode me ajudar mais uma vez !!!

Você está tentando rodar a classe Semaforo? :stuck_out_tongue:

Bom, se for isso é porque não tem o método ‘main’. :lol: :lol:

Em dúvidas futuras, poste o erro também…

O erro que da eh eferente ao main mesmo, mas eu posso coloca-lo na classe semaforo mesmo ou tenho que criar outra e assim colocar o main ?

Você pode colocá-lo na mesma classe, ou em outra classe se preferir.

Talvez, com o tempo, você perceba que não faz muito sentido uma classe com esta função ser uma classe executável, mas como disse, isso é com o tempo…

OK rmarin ! Coloquei o main na mesma classe, mas como devo colocar a minha linha de saída (impressao) ? Devo tambem colocar uma linha para que o usuario entre com um valor entre 0 e 2 ?

Aguardo resposta !!! :?:

Opa

[code]
public static void main(String[] args) {
Semaforo s = new Semaforo();

    System.out.println(s.getNomeCorAtual());
    s.muda();
    System.out.println(s.getNomeCorAtual());
    
}[/code]

para ver o funcionamento desta classe, utilize o codigo acima, e veja os efeitos de cada metodo.

Boa sorte

Ok gente, rodou sim, mas a resposta foi:

vermelho
verde

A saída é issa mesma ?

:roll: