-1

在 Java 中,我可以将变量从一个方法保存到下一个方法,并且可以跨类保存吗?

我正在尝试从命令中获取一个变量,在 QandA 中对其进行修改,并希望它能够持续存在,直到我再次修改它为止。

    public class Commands
{
   int torch = 1;
}
_____________

public class QandA
{
     Dostuff d = new Dostuff
     Commands a = new Commands();
     public void torch
{
     System.out.println("Torch = " + torch);
     a.torch = 2;
     System.out.println("Torch = " + torch);
     d.dostuff();
}
public class dostuff
{
     public void dostuff()
   {
     // User imput is gathered here etc etc.
    QandA();
   }    

}

所以我希望输出是(一个循环)

火炬 = 1

火炬 = 2

火炬 = 2

火炬 = 2

火炬 = 2

火炬 = 2

3 个周期后。但它的作用是。

火炬 = 1

火炬 = 2

火炬 = 1

火炬 = 2

火炬 = 1

火炬 = 2

三个循环后。

请帮忙。

4

2 回答 2

1

我不确定你如何引用一个类,dostuff();并且 QandA();[这些类必须存在编译错误],但请记住只创建一个 Command 实例并传递相同的实例。在您的情况下,每次创建 QandA 实例时,都会创建一个实例,并将Commandtorch字段设置为 1

于 2011-05-01T04:18:14.273 回答
1

持久化数据没有问题,但是您必须注意创建和保存它的位置。

在您的情况下,您在 Command 类范围内声明“torch”,作为初始化为“1”的 Command 的成员(我认为 - 语法有点有趣)。因此,每次您声明“new Command()”时,您都是从一个新的“火炬”变量 == 1 开始的。

您可以将“火炬”声明为静态,这意味着它为所有 Command 实例共享,然后它将按照您的意愿运行,因为每次调用构造函数时它都不会被重置(前提是您没有将其设置为1 在构造函数中)。

于 2011-05-01T04:19:54.513 回答