Meu código não funciona. Estou tentando usar um switch case para imprimir se a lampada está ligada ou desligada. Estou tentando fazer uma classe lampada onde existe um estado boleano= False, true. Onde false é para a lampada desligada e true para a lampada ligada. Mas, não funciona. Eu já testei de outros modos, ficaria feliz se alguém conseguir me mostrar o erro e assim tentar fazer uma solução melhor
Lampada.java
public class Lampada {
private boolean ligada = true;
/*
* Métodos acessores e modificadores
*/
public void setLigada(boolean alteraEstado){
if(isLigada() != alteraEstado)
this.ligada = alteraEstado;
}
public boolean isLigada(){
return ligada;
}
}
Main.java
import java.util.Scanner;
public class Main {
Scanner sc = new Scanner(System.in);
String comando = sc.nextLine();
Lampada lampada = new Lampada();
public static void main(String[] args){
System.out.println("\n\n Comando 'ligar' lampada ou 'desligar' lampada.\n\n");
switch (comando){
case "ligar":
if(comando.equals("ligar")){lampada.isLigada();lampada.setLigada(true); System.out.println("\n\n lampada ligada."); }
break;
case "desligar":
if(comando.equals("ligar")){lampada.isDesligada();lampada.setLigada(false); System.out.println("\n\n lampada desligada."); }
break;
}
}
}
error: cannot find symbol
Scanner sc = new Scanner(System.in);
symbol: class Lampada
location: class Main
error: cannot find symbol : Lampada lampada = new Lampada();
Tem muita coisa que pode ser melhorada no seu código:
Faça identação correta do código. Isso ajuda a entender mais rápido e é uma boa prática;
Não acho que a classe Lampada precise de dois atributos para representar o estado da lâmpada (ligado e desligado). Acredito que apenas um atributo resolveria;
Ao ligar e desligar a lâmpada, acho desnecessário esses IFs. Basta simplesmente ligar e desligar;
Não achei o comando que lê a entrada do usuário usando a classe Scanner;
No switch, dentro de cada case, é desnecessário a verificação do comando usando equals, sendo que já é tratado pelo switch.
Bom, montei um exemplo simples aqui, dê uma olhada e sinta-se a vontade para melhorá-lo:
Lampada
public class Lampada {
private boolean ligada;
public Lampada() {
super();
}
public void ligar() {
ligada = true;
}
public void desligar() {
ligada = false;
}
public boolean isLigada() {
return ligada;
}
}
Main
public class MainLampada {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Lampada lampada = new Lampada();
System.out.println("Comando 'ligar' lampada ou 'desligar' lampada:");
String comando = scanner.nextLine();
switch (comando) {
case "ligar":
lampada.ligar();
System.out.println("Lâmpada ligada.");
break;
case "desligar":
lampada.desligar();
System.out.println("Lâmpada desligada.");
break;
}
scanner.close();
}
}