Crie uma classe lâmpada que possui um atributo estado que pode ser true(a lâmpada está acessa) e false(a lâmpada está apagada). A classe também contém um atributo watts que é inteiro. Escreva dois construtores para a classe: um que recebe como argumentos o número de watts da lâmpada, e outro, sem argumentos, que considera que a lâmpada tem 60 watts por default. Escreva também dois métodos “ligar” e “desligar” que configura a lâmpada como acessa ou apagada. Instancie a classe e teste os métodos.
Passo 1
O enunciado pede para criarmos uma classe chamada Lâmpada que controla dois atributos:
- um booleano
estado
que indica se a lâmpada está acesa (true
) ou apagada (false
); - um inteiro
watts
que armazena a potência da lâmpada.
Precisamos ainda de dois construtores (um recebendo valor de watts e outro sem argumentos que assume 60 watts) e de dois métodos (ligar
edesligar
). Por fim, devemos instanciar a classe e testar esses métodos. O conteúdo envolvido é programação orientada a objetos em Java (atributos, construtores, métodos e teste emmain
).
Passo 2
Definimos a classe com seus atributos e encapsulamento:
public class Lampada {
private boolean estado; // true = acesa, false = apagada
private int watts; // potência em watts
Passo 3
Implementamos dois construtores:
- Construtor sem argumentos que define
watts = 60
eestado = false
(lámpada apagada por padrão). - Construtor que recebe um inteiro
watts
e inicializaestado = false
.
// Construtor default (60 watts)
public Lampada() {
this.watts \(=60\);
this.estado = false;
}
// Construtor que recebe potência
public Lampada(int watts) {
this.watts = watts;
this.estado = false;
}
Passo 4
Criamos os métodos
ligar
e desligar
para alterar o atributo estado
, e adicionamos um método toString
para facilitar a exibição do status: public void ligar() {
this.estado = true;
}
public void desligar() {
this.estado = false;
}
@Override
public String toString() {
String situacao = estado ? "acesa" : "apagada";
return "Lâmpada de " + watts + "W está " + situacao + ".";
}
}
Passo 5
Instanciamos e testamos os métodos no programa principal (
main
):public class Main {
public static void main(String[] args) {
// Lâmpada padrão: 60W
Lampada l\(1=\) new Lampada();
System.out.println(l1); // deve mostrar "apagada"
l1.ligar();
System.out.println(l1); // agora deve mostrar "acesa"
// Lâmpada de 100W
Lampada l\(2=\) new Lampada(100);
System.out.println(l2); // "apagada"
l2.ligar();
System.out.println(l2); // "acesa"
l2.desligar();
System.out.println(l2); // de volta a "apagada"
}
}
Resposta
public class Lampada {
private boolean estado;
private int watts;
public Lampada() {
this.watts \(=60\);
this.estado = false;
}
public Lampada(int watts) {
this.watts = watts;
this.estado = false;
}
public void ligar() {
this.estado = true;
}
public void desligar() {
this.estado = false;
}
@Override
public String toString() {
String situacao = estado ? "acesa" : "apagada";
return "Lâmpada de " + watts + "W está " + situacao + ".";
}
}
public class Main {
public static void main(String[] args) {
Lampada l\(1=\) new Lampada();
System.out.println(l1);
l1.ligar();
System.out.println(l1);
Lampada l\(2=\) new Lampada(100);
System.out.println(l2);
l2.ligar();
System.out.println(l2);
l2.desligar();
System.out.println(l2);
}
}