设计一个客户类[Customer],包含如下属性: id 客户名 客户电话 客户等级 要求:生成构造、getter/setter、hashcode和equals以及toString方法
时间: 2024-02-11 13:09:47 浏览: 183
好的,根据您的要求,我设计的代码如下:
```java
public class Customer {
private int id; // 客户编号
private String name; // 客户名
private String phone; // 客户电话
private int level; // 客户等级
public Customer(int id, String name, String phone, int level) {
this.id = id;
this.name = name;
this.phone = phone;
this.level = level;
}
// getter和setter方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
// hashCode和equals方法
@Override
public int hashCode() {
return Objects.hash(id, name, phone, level);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Customer)) {
return false;
}
Customer customer = (Customer) obj;
return id == customer.id &&
level == customer.level &&
Objects.equals(name, customer.name) &&
Objects.equals(phone, customer.phone);
}
// toString方法
@Override
public String toString() {
return "Customer{" +
"id=" + id +
", name='" + name + '\'' +
", phone='" + phone + '\'' +
", level=" + level +
'}';
}
}
```
其中,客户编号id是在创建对象时由外部传入的,不是内部生成的。如果需要自动生成客户编号,可以参考订单类中订单编号的生成方式。
阅读全文