题目:
定义一个订单类,包含订单编号,订单详情描述,下单人(姓名和联系电话),订单状态。 1、其中下单人可以单独定义成一个类。 2、订单状态包括(未付款、未发货、已发货、已签收),使用枚举来描述。 3、请封装各属性。 4、请至少写出2各构造函数。 5、请重写equals方法,订单编号相同即认为是同一个对象。6、请重写toString()方法,输出订单中各信息。 试编码测试。
代码实现:
public class Order {
private String num; //订单编号
private String desc;//订单描述
private Taker taker;//订单人
private Satus satus;//订单状态
public Order(String num, String desc, Taker taker, Satus satus) {
super();
this.num = num;
this.desc = desc;
this.taker = taker;
this.satus = satus;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public Taker getTaker() {
return taker;
}
public void setTaker(Taker taker) {
this.taker = taker;
}
public Satus getSatus() {
return satus;
}
public void setSatus(Satus satus) {
this.satus = satus;
}
@Override
public boolean equals(Object obj) {
if(this==obj)return true;
if(obj instanceof Order) {
Order o =(Order)obj;
return this.num.equals(o.num);
}
return false;
}
@Override
public String toString() {
return "订单编号:" + num + ", 订单描述 :" + desc + ", 订单人:" + taker + ", 订单状态:" + satus;
}
}
public enum Satus{
Unpaid,Undelivered,Delivered,Signed;//未付款、未发货、已发货、已签收
}
public class Taker{//下单人
private String name;
private String phone;
public Taker() {
}{
}
public Taker(String name, String phone) {
super();
this.name = name;
this.phone = phone;
}
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;
}
@Override
public String toString() {
return "姓名:" + name + ", 手机号" + phone;
}
}
public class Tast {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Order o1 =new Order("1007","快递",new Taker("zhangsan","123"),Satus.Undelivered);
Order o2 =new Order("1002","快递",new Taker("zhangsan","123"), Satus.Unpaid);
if(o1.equals(o2)) {
System.out.println("订单相同");
}else {
System.out.println("订单不同");
}
System.out.println(o1);
System.out.println(o2);
if(o1.getSatus()==Satus.Unpaid) {
System.out.println("订单"+o1.getNum()+"未付款");
}else if(o1.getSatus()==Satus.Undelivered){
System.out.println("订单"+o1.getNum()+"未发货");
}else if(o1.getSatus()==Satus.Signed){
System.out.println("订单"+o1.getNum()+"已发货");
}else if(o1.getSatus()==Satus.Delivered){
System.out.println("订单"+o1.getNum()+"已签收");
}
if(o2.getSatus()==Satus.Unpaid) {
System.out.println("订单"+o2.getNum()+"未付款");
}else if(o2.getSatus()==Satus.Undelivered){
System.out.println("订单"+o2.getNum()+"未发货");
}else if(o2.getSatus()==Satus.Signed){
System.out.println("订单"+o2.getNum()+"已发货");
}else if(o2.getSatus()==Satus.Delivered){
System.out.println("订单"+o2.getNum()+"已签收");
}
}
}