设计一个商品类,字段包括商品名称、重量、价格、配件数量、配件制造厂商。 要求:要定义构造函数,重写:toString方法;重写:equals方法,进行两件商品的比较。代码及运行结果:
时间: 2024-12-05 12:15:49 浏览: 11
在Java中,我们可以设计一个名为`Product`的商品类来满足上述需求。这里是一个简单的实现:
```java
public class Product {
private String productName;
private double weight;
private double price;
private int accessoryCount;
private String accessoryManufacturer;
// 构造函数
public Product(String productName, double weight, double price, int accessoryCount, String accessoryManufacturer) {
this.productName = productName;
this.weight = weight;
this.price = price;
this.accessoryCount = accessoryCount;
this.accessoryManufacturer = accessoryManufacturer;
}
// toString 方法
@Override
public String toString() {
return "Product{" +
"productName='" + productName + '\'' +
", weight=" + weight +
", price=" + price +
", accessoryCount=" + accessoryCount +
", accessoryManufacturer='" + accessoryManufacturer + '\'' +
'}';
}
// equals 方法
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Product product = (Product) obj;
return Double.compare(product.price, price) == 0 &&
accessoryCount == product.accessoryCount &&
Objects.equals(productName, product.productName) &&
Objects.equals(weight, product.weight) &&
Objects.equals(accessoryManufacturer, product.accessoryManufacturer);
}
}
// 使用示例
public static void main(String[] args) {
Product item1 = new Product("手机", 150, 3999, 2, "Apple");
Product item2 = new Product("手机", 150, 4000, 2, "Samsung");
System.out.println(item1); // 输出商品信息
System.out.println(item1.toString());
System.out.println(item1.equals(item2)); // 比较两个商品是否相等
}
```
在这个例子中,我们创建了一个包含商品名称、重量、价格、配件数量和配件制造商的`Product`类。构造函数用于初始化这些属性,`toString()`方法返回一个字符串表示该商品的信息,而`equals()`方法则比较两个`Product`对象的价格、配件数量和制造商是否完全匹配。
运行结果会打印出每个商品的详细信息,并判断第一个商品(item1)是否等于第二个商品(item2)。由于它们的价格不完全相同,`equals()`方法将返回false。
阅读全文