编写一个电表类,可以实现如下功能 set方法设置最新的电表读数 query方法显示电表ID,电表户主姓名,上次电表读数、本次电表读数,本次用电数,假设每度电的价格为0.5元,计算并显示本次电费
时间: 2024-10-25 11:05:30 浏览: 31
为了编写这样一个电表类,我们可以定义一个名为ElectricMeter的类,包含必要的属性和方法。以下是类的实现:
```java
public class ElectricMeter {
private int meterId;
private String ownerName;
private double previousReading;
private double currentReading;
// 构造方法
public ElectricMeter(int meterId, String ownerName) {
this.meterId = meterId;
this.ownerName = ownerName;
this.previousReading = 0.0;
this.currentReading = 0.0;
}
// 设置最新电表读数的方法
public void setReading(double reading) {
this.currentReading = reading;
}
// 显示电表信息的方法
public void query() {
double electricityConsumption = currentReading - previousReading;
double electricityCost = electricityConsumption * 0.5;
System.out.println("电表ID: " + meterId);
System.out.println("户主姓名: " + ownerName);
System.out.println("上一次读数: " + previousReading);
System.out.println("当前读数: " + currentReading);
System.out.println("本次用电量: " + electricityConsumption + "度");
System.out.println("本次电费: " + electricityCost + "元");
}
// 更新上次读数并在查询时自动计算电费
public void updateReading(double newReading) {
this.previousReading = currentReading;
setReading(newReading);
query();
}
}
```
你可以这样使用这个类:
```java
public class Main {
public static void main(String[] args) {
ElectricMeter electricMeter = new ElectricMeter(12345, "张三");
// 设置第一次读数
electricMeter.setReading(1000.0);
electricMeter.updateReading(2000.0); // 消耗1000度电
// 再次设置读数并查询费用
electricMeter.setReading(3000.0);
electricMeter.updateReading(4000.0); // 消耗1000度电
}
}
```
在这个例子中,每次更新读数时,都会自动计算电费,并在`query`方法中显示出来。
阅读全文