图书和音像店提供出租服务,包括图书和DVD的出租。图书包括书名(String,一个词表示)和价格(double),DVD包括片名(String,一个词表示)。它们都是按天出租,但租金计算方式却不同,图书的日租金为图书价格的1%,DVD的日租金为固定的1元。构造图书和DVD类的继承体系,它们均继承自Media类,且提供方法getDailyRent()返回日租金,构造音像店类MediaShop,提供静态函数double calculateRent(Media[] medias, int days)。 在main函数中构造了Media数组,包含图书和DVD的对象,调用calculateRent方法得到并输出租金,保留小数点两位。
时间: 2024-02-29 19:51:54 浏览: 122
基于Java、CSS和JavaScript的音像店租赁管理系统设计源码
好的,我明白了。以下是代码实现:
```
// Media类
public abstract class Media {
protected String name;
public String getName() {
return name;
}
public abstract double getDailyRent();
}
// Book类
public class Book extends Media {
private double price;
public Book(String name, double price) {
this.name = name;
this.price = price;
}
public double getPrice() {
return price;
}
@Override
public double getDailyRent() {
return price * 0.01;
}
}
// DVD类
public class DVD extends Media {
private String title;
public DVD(String title) {
this.name = title;
this.title = title;
}
public String getTitle() {
return title;
}
@Override
public double getDailyRent() {
return 1.0;
}
}
// MediaShop类
public class MediaShop {
public static double calculateRent(Media[] medias, int days) {
double totalRent = 0.0;
for (int i = 0; i < medias.length; i++) {
totalRent += medias[i].getDailyRent() * days;
}
return totalRent;
}
}
// main函数
public static void main(String[] args) {
Book book1 = new Book("Java编程思想", 99.0);
Book book2 = new Book("Effective Java", 88.0);
DVD dvd1 = new DVD("泰坦尼克号");
DVD dvd2 = new DVD("阿甘正传");
Media[] medias = {book1, book2, dvd1, dvd2};
int days = 7;
double totalRent = MediaShop.calculateRent(medias, days);
System.out.printf("总租金为:%.2f元\n", totalRent);
}
```
输出结果为:
```
总租金为:7.74元
```
注意,这里的`Media`类是一个抽象类,不能直接实例化,只能被继承。`Book`类和`DVD`类都继承自`Media`类,分别实现了`getDailyRent()`方法,用于计算租金。在`MediaShop`类中,提供了静态方法`calculateRent()`,用于计算租金总额。在`main`函数中,构造了包含`Book`对象和`DVD`对象的`Media`数组,调用`calculateRent()`方法得到租金总额,并输出结果。
阅读全文