枚举、Object类方法练习

本文介绍了如何在Java中定义一个订单类,该类包含了订单编号、描述、下单人信息(姓名和联系电话)以及订单状态。下单人被封装为一个单独的类,而订单状态则通过枚举类型来描述。此外,还实现了订单类的构造函数、equals方法和toString方法,以便于对象比较和信息输出。在测试代码中展示了如何创建订单对象并检查订单状态。
摘要由CSDN通过智能技术生成

题目:

定义一个订单类,包含订单编号,订单详情描述,下单人(姓名和联系电话),订单状态。 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()+"已签收");
        }
	}


}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风儿吹吹吹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值