Olá, estou tentando fazer um exercício de java e está dando um erro nos métodos aumentarTemperatura() e reduzir temperatura(), especificamente no comando int temperatura = termostato.getTemperatura(); segundo o Eclipse, mas não tenho certeza se é somente isso. Quem puder me ajudar ficarei muito grata.
O exercício é o seguinte:
Criar as classes CondicionadorDeAr e Termostato.
a) A classe CondicionadorDeAr tem um atributo termostato do tipo Termostato e um atributo boolean chamado ligado. O construtor de CondicionadorDeAr não recebe nenhum parâmetro, mas instancia um termostato e coloca ligado em false. Crie um método de acesso para ligado e outro para termostato. Não precisa fazer os métodos modificadores. Crie um método ligar, que muda ligado para true, e um desligar, que muda ligado para false. Crie um método aumentarTemperatura, que aumenta a temperatura do termostato em um grau cada vez que é chamado até o limite de 28 graus. Crie um método reduzirTemperatura que reduz a temperatura em um grau cada vez que é chamado até o limite de 15 graus. Crie um método imprimirTemperatura que imprime a temperatura atual. Não se esqueça de
verificar se o condicionador está ligado antes de aumentar ou diminuir a temperatura ou imprimi-la.
b) A classe Termostato tem um atributo privado temperatura. Seu construtor não recebe parâmetros, mas instancia a temperatura em 20. Crie métodos de acesso e modificador. Estes métodos devem respeitar os limites estabelecidos no item anterior.
c) Crie a classe Usuario, com o método main. Neste método você deve instanciar um CondicionadorDeAr, aumentar a temperatura para 30 graus (receber mensagem de erro), reduzir a temperatura para 10 graus (receber mensagem de erro). Aumentar a temperatura para 25 graus e imprimir a temperatura.
Classe Termostato
public class Termostato {
private int temperatura;
public Termostato (int temperatura) {
this.temperatura = temperatura;
}
public int getTemperatura() {
return temperatura;
}
public int setTemperatura(int temperatura) {
this.temperatura = temperatura;
return temperatura;
}
}
Classe CondicionadorDeAr
import javax.swing.JOptionPane;
public class CondicionadorDeAr {
private Termostato termostato;
private boolean ligado;
public CondicionadorDeAr(){
this.termostato = new Termostato(20);
this.ligado = false;
}
public Termostato getTermostato() {
return termostato;
}
public boolean getLigado() {
return ligado;
}
public boolean ligar(){
ligado = true;
return ligado;
}
public boolean desligar(){
ligado = false;
return ligado;
}
public int aumentarTemperatura(){
int temperatura = termostato.getTemperatura();
if (ligado == false){
JOptionPane.showMessageDialog(null, "O condicionador está desligado!","Atenção!",0);
return 0;
}else{
if (temperatura < 28) {
termostato.setTemperatura(++temperatura);
}else{
JOptionPane.showMessageDialog(null, "Temperatura máxima atingida!","Atenção!",0);
}
return temperatura;
}
}
public int reduzirTemperatura(){
int temperatura = termostato.getTemperatura();
if (ligado == false){
JOptionPane.showMessageDialog(null, "O condicionador esta desligado!","Atenção!",0);
return 0;
}else{
if (temperatura > 15) {
termostato.setTemperatura(--temperatura);
}else{
JOptionPane.showMessageDialog(null, "Temperatura mínima atingida!","Atenção!",0);
}
return temperatura;
}
}
@Override
public String toString() {
int temperatura = termostato.getTemperatura();
return "TEMPERATURA ATUAL: " + temperatura + "°C";
}
}
Classe Usuário
import javax.swing.JOptionPane;
public class Usuario {
public static void main(String[] args) {
int menu=0;
String n;
CondicionadorDeAr condicionador = new CondicionadorDeAr();
Termostato termostato = new Termostato(20);
int temperatura = termostato.getTemperatura();
do{
boolean ligado = condicionador.getLigado();
if(ligado == false){
n = "OFF";
}else{
n = "ON";
}
Object[] options = { "Aumentar temperatura", "Diminuir temperatura", "Ligar", "Desligar", "Encerrar Programa" };
int op_index = JOptionPane.showOptionDialog(null, "STATUS CONDICIONADOR DE AR: " + n + " | " + condicionador.toString() + "\nO que deseja fazer?", "Informe a opção desejada", 0, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
if (op_index == 0){
condicionador.aumentarTemperatura();
menu = 1;
}
if (op_index == 1){
condicionador.reduzirTemperatura();
menu = 1;
}
if (op_index == 2){
boolean lig = condicionador.getLigado();
if(lig == false){
condicionador.ligar();
JOptionPane.showMessageDialog(null, "Condicionador de ar ligado com sucesso!", "Atenção!",2);
}else{
JOptionPane.showMessageDialog(null, "O condicionador já está ligado!", "Atenção!",0);
}
menu = 1;
}
if(op_index == 3){
boolean lig = condicionador.getLigado();
if(lig == false){
JOptionPane.showMessageDialog(null, "O condicionador já está desligado!", "Atenção!",0);
}else{
condicionador.desligar();
JOptionPane.showMessageDialog(null, "Condicionador de ar desligado com sucesso!", "Atenção!",2);
}
int op = JOptionPane.showConfirmDialog(null, "Deseja voltar ao menu?", "Voltar ao início?", JOptionPane.YES_NO_OPTION);
if (op == JOptionPane.YES_OPTION){
menu = 1;
}else {
menu = 0;
}
}
if (op_index == 4){
System.exit(0);
}
} while(menu == 1);
}
}
Agradeço a todos desde já!