gpt4 book ai didi

java - 如何将一个值从一个类返回到另一个类? java

转载 作者:行者123 更新时间:2023-12-01 15:00:58 25 4
gpt4 key购买 nike

我遇到了一点问题。情况是这样的。我的主类中有一个金额字段,当单击某些按钮时该字段会增加。提供了一种方法,您可以通过该方法删除任何订单(我基本上是为餐厅终端编程)并且金额会减少。删除方法放在另一个类中。

public void posdel(int pos, JTextField amountFieldGot, int amountGot)
{
if(slist==null)
{
JOptionPane.showMessageDialog(null, "No order has been placed yet.",null,JOptionPane.WARNING_MESSAGE);
}
else
{
if(pos==1)
{
reductionAmount = (slist.quantity*slist.price);
amountGot = amountGot - reductionAmount;
slist=slist.next;
}
else
{
int i=1;
Node temp=slist;
Node prev=null;
while(temp.next!=null && i<pos)
{
prev=temp;
temp=temp.next;
i++;
}
if(pos==i)
{
prev.next=temp.next;
}
else
{
JOptionPane.showMessageDialog(null, "Invalid order", null, JOptionPane.ERROR_MESSAGE);
}
}
}
amountFieldGot.setText(Integer.toString(amountGot));
}

基本上,我的 GUI 中有一个 amountField,我将其作为参数传递给 posdel 方法。我还将金额值作为参数传递。我得到的新金额是删除第一个订单后的 amountGot 。 (我还没有写过其他职位的代码。)假设我传入该方法的金额值为 30 (14+16) 14 = order 1, 16 = order2。我的第一个订单的值为 14。所以 amountGot = 30 - 14 即 16。GUI 中的 amountField 更新为 16。现在我的订单 2 变成了我的订单 1。如果我尝试删除它,我的 amountField 更新为 14。(30-16 = 14)。所以我猜测 amount 值本身与 30 相同,并且不会更新为新的 amountGot 值。有人可以帮我解决这个问题吗?

下面是我的删除按钮的代码。

deleteButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
dishDelPos = JOptionPane.showInputDialog("Enter the position of the order to be deleted");
try
{
dishDeletePosition = Integer.parseInt(dishDelPos);
order1.posdel(dishDeletePosition, amountField, amount);
repaint();
}
catch(NumberFormatException ex1)
{
JOptionPane.showMessageDialog(null,"This is not a valid position");
}
}
});

最佳答案

一些事情。

您可以将类中的删除方法设为静态。您会引用它

 value = MyClass.deleteMethod();

您可以创建一个新类来执行该方法

MyClass myClass = new MyClass();
value = myClass.deleteMethod();

您可以使用某种指针来完成此操作,方法是将对包含删除方法的类的现有实例的引用传递到您要调用它的位置。

 myFunction(MyClass myClass)
{
value = myClass.deleteMethod();
}

基本上设置您的函数以返回值

public static int deleteMethod()
{
}

该函数返回一个 int。

或者如果您需要返回更多内容,则使用全局信息变量设置类

class MyClass
{
public int value1;
public int value2;
public String value3;

public void deleteMethod()
{
//does something with global variables
}
}

现在像这样调用删除后获取信息

Myclass myClass = new MyClass();
myClass.deleteMethod();
value1 = myClass.value1
value2 = myClass.Value2
value3 = myClass.Value3

关于java - 如何将一个值从一个类返回到另一个类? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13657147/

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