1
resposta

[Projeto] ControleDeDispositivos

package br.com.nadson.desafiosc9.modelo;

public interface Controlavel {
    public void ligar();
    public void desligar();
}
package br.com.nadson.desafiosc9.modelo;

public class ArCondicionado implements Controlavel{
private boolean ligado=false;
@Override
public void ligar() {
    if (!ligado) {
        ligado = true;

        System.out.println("Ligando O Ar Condicionado");
    } else {
        System.out.println("O Ar condicionado ja esta ligado");
    }
}

@Override
public void desligar() {
    if (ligado) {
        ligado = false;
        System.out.println("Desligando o Ar Condicionado");
    } else {
        System.out.println("O Ar condicionado ja esta desligado");
    }

}}
package br.com.nadson.desafiosc9.modelo;

public class Luz implements Controlavel {
    private boolean ligado = false;

    @Override
    public void ligar() {
        if (!ligado) {
            ligado = true;

            System.out.println("Ligando a luz");
        } else {
            System.out.println("Luz já está ligada");
        }
    }

    @Override
    public void desligar() {
        if (ligado) {
            ligado = false;
            System.out.println("Desligando a luz");
        } else {
            System.out.println("A luz ja esta desligada");
        }

    }
}
package br.com.nadson.desafiosc9.principal;

import br.com.nadson.desafiosc9.modelo.ArCondicionado;
import br.com.nadson.desafiosc9.modelo.Luz;

public class ControleDeDispositivos {
    public static void main(String[] args) {
        Luz luz = new Luz();
        ArCondicionado arCondicionado = new ArCondicionado();
        luz.desligar();
        luz.ligar();

        luz.ligar();
        luz.desligar();

        System.out.println("\n---");
arCondicionado.ligar();
        arCondicionado.ligar();
        arCondicionado.desligar();
        arCondicionado.desligar();
    }
}
1 resposta

Olá, Nadson! Como vai?

Do jeito que você explicou e mostrou no projeto ControleDeDispositivos, chamou atenção o uso correto de interface para padronizar o comportamento de ligar e desligar, além do controle de estado com a variável ligado.

Isso mostra um bom entendimento de herança, polimorfismo e interfaces, principalmente na forma como Luz e ArCondicionado seguem o mesmo contrato.

Uma dica interessante para o futuro é usar polimorfismo no código principal, trabalhando diretamente com a interface em vez das classes concretas. Veja este exemplo:


Controlavel dispositivo = new Luz();
dispositivo.ligar();
dispositivo.desligar();

Esse código cria uma referência do tipo interface e permite trocar a implementação facilmente, como Luz ou Ar-condicionado, sem mudar a lógica principal.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!