题目:

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

枚举、Object类方法练习相关推荐

  1. Java Object 类方法解析

    本文标题大纲: 文章目录 前言 getClass hashCode equals clone 深拷贝和浅拷贝 toString wait / notify / notifyAll finalize 前 ...

  2. Java Object类方法

    基本描述: (1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: (2)Object类是所有Java类的祖先.每个类都使用 Obje ...

  3. Reflect.ownKeys()与Object.keys()区别 以及 JS中的可枚举属性与不可枚举属性

    代码test1: var obj = {} Object.defineProperty(obj, 'method1', {value: function () {alert("Non enu ...

  4. Scala学习教程笔记二之函数式编程、Object对象、伴生对象、继承、Trait、

    1:Scala之函数式编程学习笔记: 1:Scala函数式编程学习:1.1:Scala定义一个简单的类,包含field以及方法,创建类的对象,并且调用其方法:class User {private v ...

  5. object.defineProperty

    1.object.defineProperty 给一个对象定义一个新的属性或者在修改一个对象现有的属性,并返回这个对象 语法: Object.defineProperty(参数1,参数2,参数3) 参 ...

  6. 了解 object.defineProperty 的基本使用方法(数据双向绑定的底层原理)

    Object.defineProperty 给一个对象定义一个新的属性或者在修改一个对象现有的属性,并返回这个对象 语法: Object.defineProperty(参数1,参数2,参数3) 参数1 ...

  7. java构造一个水果类_Java基础入门之Object类、匿名内部类、构造方法的继承解析...

    前言 大家好,我是Java进阶者.这篇文章我们主要介绍Java基础中的Object类.匿名内部类.构造方法的继承知识,一起来学习下吧! 一.Object类 1.Object类是所有类的父类,所有类都继 ...

  8. 红皮书 Object

    ​ 需要反复看的 ECMAScript 6 专门为合并对象提供了 Object.assign()方法.这个方法接收一个目标对象和一个 1 或多个源对象作为参数,然后将每个源对象中可枚举(Object. ...

  9. Java基础知识(二)(Object类的常用方法、日期时间类、System类、StringBuilder类、包装类、Collection集合、Iterator迭代器、泛型、list集Set接口...)

    文章目录 Java基础知识(二) 1.Object类的常用方法 1.1 toString方法 1.2 equals方法 1.3 Objects类 2.日期时间类 2.1 Date类 2.2 DateF ...

最新文章

  1. AI科技大本营招实习生了!
  2. python 实例对象 浅拷贝_Python3 入门教程——浅拷贝深拷贝差别
  3. 用平方映射理解tanh
  4. 一场不期而遇的美好 当无线遇上大数据
  5. Spring MVC的优势
  6. 理解ABR及其工作原理
  7. java8并行流_Java 8:CompletableFuture与并行流
  8. rhq监控软件_RHQ指标的WildFly子系统
  9. python毕业设计总结范文大全_毕业设计心得体会范文【优秀】
  10. jmap查看java进程占用的数据库连接数
  11. 开发者测试android studio 试手
  12. 我儿子竟跟男孩子抱在一起
  13. win10 u盘 修复计算机,U盘启动盘修复win10系统的方法
  14. python之父996icu_Python之父声援中国程序员996ICU计划,Python要拒绝996公司?
  15. 门外汉掌握数据分析处理技术的路线图
  16. 图片怎么无损放大?不影响清晰度这么做
  17. open3d使用知识拾遗
  18. 清华大学计算机崔勇,崔勇 简历 - 名人简历
  19. β-VAE:学习具有约束框架的基本视觉概念
  20. java实现随机输出26个小写字母

热门文章

  1. 各类证件类型的格式校验
  2. python2 中文字符编码转换
  3. sql里left join的效率问题
  4. 一年中最后一个月的最后一天说说_最后一天的说说_最后一天的心情说说大全...
  5. 275、从零开始教你配置H3C路由器
  6. 微信小程序滚动居中导航选项卡
  7. Project的介绍
  8. 画洗碗机器人的思维导图_怎样用思维导图来协助家务整理?
  9. EDM邮件营销ip预热
  10. React Native Expo 项目中添加动画音效