题目:
*订单包含下面信息:
(1)用户名
(2)订单号
(3)提交时间
(4)总价
(5)订单状态
(6)收货地址
1)姓名
2)省
3)市
4)街道
5)联系电话
*1、创建地址类ShippingAddress
(1)包含成员变量:name, province,city,street,tel分别代表收件人姓名、省、市、街道、联系电话。
(2)一个构造方法,为各成员变量赋初值
(3)成员变量的get和set方法。
(4)public String toString()方法,返回地址信息构成的字符串,格式自定
2、创建订单类Order
(1)包含成员变量: orderNo(订单号),createTime(提交时间),totalPrice(总价),address(收货地址),status(订单状态)。address变量为ShippingAddress类型,订单状态包含“1-未付款,2-已付款,3-已发货,4-完成”,初始订单状态为“未付款”。
(2)构造方法,为订单号,总价赋初值。createTime为当前系统时间。
(3)构造方法,为订单号,总价,收货地址赋初值。createTime为当前系统时间。
(4)成员变量的get和set方法。
(5)public String toString()方法,返回订单信息构成的字符串,格式如下:
“订单号\t用户名\t总价\t订单状态\t订单时间
收货地址:地址信息”
3、测试类OrderTest
(1)分别使用两种构造方法创建订单,设置必要的订单信息,输出订单信息
(2)修改订单状态,输出订单信息
(3)修改订单地址,输出订单信息。**
以下是Order.java
package 模拟订单;
public class ShippingAddress {
private String name;
private String province;
private String city;
private String street;
private String tel;
ShippingAddress(String name,String province,String city,String street,String tel){
this.name=name;
this.province=province;
this.city=city;
this.street=street;
this.tel=tel;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String toString() {
return province+"省"+city+"市"+street+"街道";
}
}
以下是Order.java
package 模拟订单;
import java.util.*;
public class Order {
private String orderNo; //订单号
private Date createTime=new Date(); //提交时间(当前系统时间)
private double totalPrice; //总价
private ShippingAddress address; //收货地址
private String status; //订单状态
//第一种构造方法
Order(String orderNo,double totalPrice){
this.orderNo=orderNo;
this.totalPrice=totalPrice;
status="未付款";
}
//第二种构造方法,多一个地址
Order(String orderNo,double totalPrice,ShippingAddress address){
this.orderNo=orderNo;
this.totalPrice=totalPrice;
this.address=address;
status="未付款";
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public double getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(double totalPrice) {
this.totalPrice = totalPrice;
}
public ShippingAddress getAddress() {
return address;
}
public void setAddress(ShippingAddress address) {
this.address = address;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String toString(ShippingAddress a) {
return "订单号:"+orderNo+"\t用户名:"+a.getName()+"\t总价:"+totalPrice+"\t订单状态:"+status+"\t订单时间:"+createTime+"\n收货地址:"+a.toString();
}
}
以下是TextOrder.java
package 模拟订单;
public class OrderText {
public static void main(String[] args) {
//新建地址
ShippingAddress ad1=new ShippingAddress("夏新澳", "江苏", "扬州", "杭集", "1111000111");
//第一种构造方法创建的订单
Order order1=new Order("10000001", 150);
System.out.println(order1.toString(ad1));
//第二种构造方法创建的订单
Order order2=new Order("10000002",480,ad1);
System.out.println(order2.toString(order2.getAddress()));
//修改订单一的订单状态
order1.setStatus("已付款");
System.out.println(order1.toString(ad1));
//修改订单一的地址
ad1.setStreet("汶河");
//输出信息
System.out.println(order1.toString(ad1));
}
}
运行结果:
订单号:10000001 用户名:夏新澳 总价:150.0 订单状态:未付款 订单时间:Thu Feb 28 18:53:36 CST 2019
收货地址:江苏省扬州市杭集街道
订单号:10000002 用户名:夏新澳 总价:480.0 订单状态:未付款 订单时间:Thu Feb 28 18:53:36 CST 2019
收货地址:江苏省扬州市杭集街道
订单号:10000001 用户名:夏新澳 总价:150.0 订单状态:已付款 订单时间:Thu Feb 28 18:53:36 CST 2019
收货地址:江苏省扬州市杭集街道
订单号:10000001 用户名:夏新澳 总价:150.0 订单状态:已付款 订单时间:Thu Feb 28 18:53:36 CST 2019
收货地址:江苏省扬州市汶河街道