Programa Aquecimento de Caldeira

Boa Noite! Alguém poderia me ajudar? Não estou sabendo fazer o seguinte complemento.

Crie um Construtor onde seja possível iniciar a aplicação ajustando o valor inicial da
caldeira
Crie uma Exception personalizada chamada LimiteSuperiorTemperatura, que deverá
ser lançada no local da Exception quando a temperatura ultrapassar o limite máximo
estabelecido.
Crie uma Exception personalizada chamada LimiteInferiorTemperatura, que deverá ser
lançada no local da Exception quando a temperatura ultrapassar o limite inferior
estabelecido.
Crie um método chamado setParametros() onde será possível trocar a temperatura
máxima e mínima da caldeira.

public class AtivCaldeira {

int temperaturaAtual = 100;

public void aquecer() {

    try {

        int y = Entrada.leiaInt("Informe em quantos graus a temperatura deve ser aumentada.");

        if (this.temperaturaAtual >= 250 || 250 < (this.temperaturaAtual + y)) {

            throw new Exception("Sobreaquecimento");

        } else {

            this.temperaturaAtual = this.temperaturaAtual + y;

        }

    } catch (Exception e) {

        Entrada.escrever("Perigo! Risco de Explosão.");

    }
}

public void esfriar() {

    try {

        int y = Entrada.leiaInt("Informe em quantos graus a temperatura deve ser diminuída.");

        if (this.temperaturaAtual <= 80 || 80 > (this.temperaturaAtual - y)) {

            throw new Exception("Resfriamento.");

        } else {

            this.temperaturaAtual = this.temperaturaAtual - y;

        }

    } catch (Exception e) {

        Entrada.escrever("Atenção! Desaquecimento Perigoso.");

    }
}

public void Controle() {

    int z = 0;

   
    while (z != 3) {

        z = Entrada.leiaInt("CONTROLE DE AQUECIMENTO DA CALDEIRA. \n\n"
                + "** Temperatura Atual: " + this.temperaturaAtual + "\n\n"
                + "1 - Aumentar Temperatura\n"
                + "2 - Diminuir Temperatura\n"
                + "3 - Sair");

        switch (z) {

            case 1:

                aquecer();

                break;

            case 2:

                esfriar();

                break;

            case 3:

                Entrada.escrever(">> Saindo Do Sistema... <<");

                System.exit(0);

            default:

                Entrada.escrever("Opção Inválida!");

                break;

        }
    }
}

public static void main(String[] args) {

    AtivCaldeira caldeira = new AtivCaldeira();

    caldeira.Controle();

}

}

Acho que deveria haver uma classe Caldeira, que receberia uma temperatura como parâmetro para o construtor, e talvez um construtor sem parâmetros que ajuste a temperatura para um determinado valor padrão.

LimiteSuperiorTemperatura e LimiteInferiorTemperatura deveriam extender a classe Exception, e não lançar diretamente Exception.

A Verificação dos valores de temperatura dentro dos limites e o lançamento das Exceptions deveria ficar dentro do método setParametros(), e o construtor deveria setar as temperaturas através de setParametros(), assim evitaria a redundância de código.

Os métodos aquecer(), esfriar() e Controle() parecem desnecessários, e Controle() não está seguindo a convenção de capitalização.