gpt4 book ai didi

java - 在另一个方法中返回更新后的值

转载 作者:行者123 更新时间:2023-12-01 17:56:46 25 4
gpt4 key购买 nike

我有两种方法,在一种方法中更新变量的值,并且我想在第二种方法中调用更新后的值。

// Instance variables
private int numOfFirstClassSeats = 48;
...

在我的 bookFirstClassSeats 方法中,我从可用座位数中减去乘客数。

numOfFirstClassSeats -= numOfFirstClassAdults;

我还有以下 getter 和 setter 方法。

public int getNumOfFirstClassSeats() {
return numOfFirstClassSeats;
}

public void setNumOfFirstClassSeats(int numOfFirstClassSeats) {
this.numOfFirstClassSeats = numOfFirstClassSeats;
}

因此,在第一个方法中,我调用了 getset 方法。

public void bookFirstClassSeats() {
...

// Subtract the number of passengers from the number of seats available.
numOfFirstClassSeats -= numOfFirstClassAdults;
System.out.println("Available Seats: " + getNumOfFirstClassSeats());
}

System.out.println() 打印正确的更新值 46。

在第二种方法中,我想显示可用座位数,如下所示。

public void printAvailableSeats() {
System.out.println("First Class: " + getNumOfFirstClassSeats();
}

问题:当我运行此功能时,我得到相同的原始值 48。我明白为什么我没有得到更新的值,但我还没有弄清楚如何调用它.

编辑:澄清一下,这两种方法都在同一个类中。我有另一个名为 BookingSystem.java 的类,我用它来运行 main 方法并从另一个类调用上述方法。

这是我的main方法代码:

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input;

do {
System.out.println("\n~ BOOKING SYSTEM ~");
System.out.println("------------------");
System.out.println("A. Book Seats");
System.out.println("B. View Available Seats");
System.out.println("X. Exit\n");

System.out.print("Select an option: ");
input = sc.nextLine();

if (input.length() > 1)
System.out.println("ERROR: You can only enter a single character!");
else {
input = input.toUpperCase();

switch(input) {
case "A":
new BookingReceipt().bookSeats();
break;

case "B":
new BookingReceipt().printAvailableSeats();
break;

case "X":
System.out.println("INFO: You have exited the booking system.");
break;

default:
System.out.println("ERROR: Invalid input!");
}
}
} while (input.equals("X") == false);

sc.close();
}

最佳答案

好吧,你做了那个二传手;打电话吧!

例如:

public void bookFirstClassSeats() {
...

// Subtract the number of passengers from the number of seats available.
numOfFirstClassSeats -= numOfFirstClassAdults;
setNumOfFirstClassSeats(numOfFirstClassSeats);
System.out.println("Available Seats: " + getNumOfFirstClassSeats());
}

请注意,面向对象的思维方式比死记硬背的 getter 和 setter 更进一步。任何具有 numOfFIrstClassSeats 字段的类也应该具有 book 方法。

关于java - 在另一个方法中返回更新后的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60699611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com