Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中为公共int设置新值_Java_Variables_Integer - Fatal编程技术网

如何在java中为公共int设置新值

如何在java中为公共int设置新值,java,variables,integer,Java,Variables,Integer,在java编程语言中,如何为公共整数设置一个新值,以便外部类中的外部方法可以通过简单地调用变量名获得该值。我有示例代码: package build; public class Main { public static void main(String[] args) { Main main = new Main(); main.init(); } public int myVa

在java编程语言中,如何为公共整数设置一个新值,以便外部类中的外部方法可以通过简单地调用变量名获得该值。我有示例代码:

    package build;

    public class Main {

        public static void main(String[] args) {
            Main main = new Main();
            main.init();
        }

        public int myVar = 1;
编辑:

更具体的问题:如何在不将变量传递给方法的基础上获取变量的更新值而不是起始值

        public void init() {
            Retrieve ret = new Retrieve();
            int i = 0;
            for(int n = 1; n > 0; ++n) {
                myVar = myVar + 1;
                System.out.println("Value: " + myVar);
                i = ret.init();
                System.out.println("Retrieved Value: " + i);
            }
        }

        int getValue()  {
            int b = myVar;
            return b;
        }
    }
如欲退还:

    package build;

    public class Retrieve {

        public int init() {
            Main main = new Main();
            int a = 1;
            a = main.getValue();
            return a;
        }
    }
在上面的示例中,我如何将变量“myVar”设置为一个非一的值,以便在“return”类中调用“init”方法时,它返回新值,而不是1,即起始值?

这相当糟糕,但这将起作用:

这相当糟糕,但这会奏效:


你的对象关系有点问题

主要问题在Retrieve.init()中

每次调用init()时,都会生成一个main的新实例,因此main.myVar将为1。我假设您想调用第一个main的值

public class Retrieve {

    public int init(Main main) {            
        int a = 1;
        a = main.getValue();
        return a;
    }
}
在Main.init change中

Retrieve ret = new Retrieve();


你的对象关系有点问题

主要问题在Retrieve.init()中

每次调用init()时,都会生成一个main的新实例,因此main.myVar将为1。我假设您想调用第一个main的值

public class Retrieve {

    public int init(Main main) {            
        int a = 1;
        a = main.getValue();
        return a;
    }
}
在Main.init change中

Retrieve ret = new Retrieve();


如果(在我的主类中)不说main.myVar=main.myVar+1,它会起作用吗?这就是我试图做的,检索变量,而不将其设置为所需的值,我希望能够检索它并获取它的更新值,而不是它的起始值。如果不说(在我的主类中)main.myVar=main.myVar+1,它会起作用吗?这就是我试图做的,检索变量,而不将其设置为所需的值,我希望能够检索它并获取它的更新值,而不是它的起始值。哦,这是有意义的,我会尝试一下,然后返回给您。工作非常出色,除了设置“retrieve ret=new retrieve(this)”而不是设置“retrieve ret=new retrieve(this)”,我设置了“I=ret.init(this)”除了那个完美的答案,这正是我想要的。哦,这很有意义,我会尝试一下,然后再给你回复。效果非常好,除了设置“Retrieve ret=new Retrieve(this)”而不是“Retrieve ret=new Retrieve(this)”,我设置了“I=ret.init(this)”而不是那个完美的答案,这正是我想要的。
Retrieve ret = new Retrieve(this);