oop-java方法按顺序递增数字



我遇到了一个问题,我必须在java中创建一个方法来获取票证编号,每次调用该方法时都会按顺序生成一个编号。

这就是我目前为止对售票方法的了解

public class Ticket
{
public static final String PREFIX = "CAR";
public static int number = 1000;
//instance variables
private String ticketNumber;
public Ticket(){
ticketNumber = generateTicketNumber();
}
public String getTicketNumber(){
return ticketNumber;
}
private String generateTicketNumber(){
number = number++;
ticketNumber = PREFIX +number;
return ticketNumber;
}

我被告知使用一个静态变量(我有(来创建和保持一个计数器,以生成部分票证编号,增加静态变量,并将其与字符串前缀一起分配给字段ticketNumber。当我创建一个对象时,它不会增加到CAR1001,它只会增加到CAR1000,我要为此尝试while循环吗?

number = number++;不会按照您的想法进行评估。这实际上意味着右侧递增number,但number++也是一个表达式,其值是number值,在递增完成之前。然后,由于分配了number = ...,旧值被分配给左侧的number,从而取消增量。

因此,您应该只编写number++;,它只是增加变量。

除非我遗漏了什么,否则我认为你已经把这件事弄得太复杂了。您只需要PREFIXnumber。将PREFIXnumber连接,并递增number。这可以在一个步骤中完成,比如

public class Ticket {
private static final String PREFIX = "CAR";
private static int number = 1000;
public String getTicketNumber() {
return PREFIX + number++;
}
}

或者,也许更容易阅读,

public String getTicketNumber() {
try {
return PREFIX + number;
} finally {
number++;
}
}

最新更新