首页 > 解决方案 > 如何使用数组自动生成 ID?以及如何为每个货运订单创建货运状态?

问题描述

所以我有一个任务要求我编程和创建货运 ID 并更新每个新订单的状态。

货运 ID:这应该是使用以下简单算法自动生成的唯一编号。
• 使用数字“1939”作为第一个货运编号。为下一次运费将其增加 1。

货运状态:可以是以下代码之一:“D”、“P”或“W”。“D”:送达目的地 “P”:处理中 “W”:在仓库等待送达。
创建新货运单时,其初始状态应记录为“W”。

我尝试了一些方法,但我似乎无法理解我应该如何自动生成和增加货运 ID 以及创建货运状态。

public void freightID() 
{
    int [] freightID = {1939,1939,1939,1939,1939};
    for (int i = 0; i<ID_SIZE; i++)
    {
        int answer = ++freightID[0];
        System.out.println(freightID[i]*1);
   }

}

我知道这是完全错误的,但我只是想展示我尝试过的东西。

标签: javagreenfoot

解决方案


因此,据我了解您的任务,您必须创建一个具有“货运 ID”和“状态”属性的“订单”类。第一个订单将从 ID 1939 开始,每个新订单都需要增加这个数字。创建此类订单状态为 W。创建订单后,您希望有可能更改状态。如果那是正确的,我有适合你的解决方案:

public class Order {

    public Order() {
        this.freightStatus = freightStatus.W;
        this.freightID = startID;
        startID++;
    }

    private static int startID = 1939;
    private int freightID;
    private FreightStatus freightStatus;

    enum FreightStatus {
        D, P, W
    }

    public void setFreightStatus(FreightStatus freightstatus) {
        this.freightStatus = freightstatus;
    }

    public FreightStatus getFreightStatus() {
        return this.freightStatus;
    }

    public int getFreightID() {
        return this.freightID;
    }

    public static void main(String args[]) {
        Order orders[] = new Order[5];
        for (int counter = 0; counter < orders.length; counter++) {
            orders[counter] = new Order();
        }

        for (Order order : orders) {
            System.out.println(order.getFreightID() + " " + order.freightStatus);
        }

        for (int counter = 0; counter < orders.length; counter++) {
            orders[counter].setFreightStatus(FreightStatus.D);
        }

        for (Order order : orders) {
            System.out.println(order.getFreightID() + " " + order.freightStatus);
        }
    }
}

我希望这就是你所要求的,如果不是,请澄清你的问题。


推荐阅读