Meu mano, no título você pergunta como faz usando String, depois no final você quer sem usar if e else, e depois escrevendo vermelho??? Primeiro de tudo, formate seu código usando 4 espaços antes de inserí-lo, depois, esclareça sua dúvida de um modo que a gente consiga entender, pq se não, ninguém vai conseguir te ajudar amigo.
Victor_Calebe
eu queria que funcionasse assim:
objeto.recebeEstadoCorrente(“vermelho”)
ao invés de objeto.recebeEstadoCorrente(1)
L
lucas_P
Não sei se é bem isso que você quer…
public void recebeEstadoCorrente( String estado){
if( estado==“Vermelho”)
…
Victor_Calebe
Quero fazer um método que receba uma string e não um inteiro, é isso que quero dizer
L
lucas_P
Da forma que mostrei anteriormente você ta recebendo uma String.
Victor_Calebe
E pode fazer isso em java? pensei que String em java fosse uma classe e não um tipo
L
lucas_P
Em C você utiliza char[100] para simular uma String, em java você pode utilizar a String normalmente. Só lembre de começar com a letra maiúscula, se não, não funciona.
Usar println em um método pode ser considerada uma má prática de programação. Tente retornar o valor e printar onde ele foi chamado.
Victor_Calebe1 like
É que eu estou seguindo o exemplo do professor. Eu nem sei java. Eu só sei linguagem c de algorítimos. O professor inventou de dar Estrutura de Dados em java, sendo que ngm da turma estudou java
Receber o Estado corrente do semáforo(vermelho, verde ou amarelo).
Talvez vc esteja estranhando o que eu estou fazendo, mas é pq eu sou inciante, estou aprendendo a usar os métodos ainda.
Guilherme9401
Acho que você não precisa mais, mesmo assim eu fiz aqui.
publicstaticvoidmain(String[]args){Semaforos=newSemaforo();//cria um semáforoSystem.out.println(s.recebeEstadoCorrente("vermelho"));//imprime vermelhoSystem.out.println(s.recebeEstadoCorrente("verde"));//imprime verdeSystem.out.println(s.recebeEstadoCorrente("amarelo"));//imprime amarelo}publicStringrecebeEstadoCorrente(Stringestado){if(estado.equalsIgnoreCase("vermelho"))//se for vermelhoreturn"vermelho";//retorna o valor vermelhoelseif(estado.equalsIgnoreCase("verde"))//senão, se for verdereturn"verde";//retorna o valor verdeelseif(estado.equalsIgnoreCase("amarelo"))//senão, se for amareloreturn"amarelo";//retorna o valor amareloelse//se não for nenhuma dessasreturnnull;//retorna nulo}
Tem outros modos de fazer também, por exemplo iniciando no construtor:
Stringestado;//atributo da minha classepublicstaticvoidmain(String[]args){Semaforos=newSemaforo("vermelho");//cria um semáforo com o estado em vermelhoSystem.out.println("Estado: "+s.estado);//imprime Estado: vermelhos.setEstado("verde");//coloca o estado como verdeSystem.out.println("Estado: "+s.estado);//imprime Estado: verde}publicSemaforo(Stringestado){//construtor da classe Semaforothis.estado=estado;//inicia a variável estado do objeto(this.estado) com um estado(estado)}publicvoidsetEstado(Stringestado){//método para mudar o estadothis.estado=estado;//muda o estado do objeto(this.estado) para um novo estado(estado)}
Enfim, existem diversas formas de fazer isso. Recomendo estudar um pouco sobre isso. Aqui alguns vídeos que podem te ajudar: