Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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 修改类中的变量_Java - Fatal编程技术网

Java 修改类中的变量

Java 修改类中的变量,java,Java,假设我有一个类,它有一些变量,我希望能够在类中的几个方法中增加这些变量。我该如何编辑它们 我一直在试着这样做,但它不起作用。通过阅读我的理解是,java传递了对象的一个副本,所以当我在方法中编辑它时,它实际上并没有编辑原始值。它只是对副本进行调整,然后一旦调整完成,值就会消失 我确实读过一些关于必须从方法返回值来更新原始值的内容,但是接下来我有点困惑如何调用它 简单的例子: public class Thing { private int someInt = 0; // optional

假设我有一个类,它有一些变量,我希望能够在类中的几个方法中增加这些变量。我该如何编辑它们

我一直在试着这样做,但它不起作用。通过阅读我的理解是,java传递了对象的一个副本,所以当我在方法中编辑它时,它实际上并没有编辑原始值。它只是对副本进行调整,然后一旦调整完成,值就会消失

我确实读过一些关于必须从方法返回值来更新原始值的内容,但是接下来我有点困惑如何调用它

简单的例子:

public class Thing {
    private int someInt = 0; // optional, can be left unset as well if you remember to assign it in the constructor or some method.

    public static void main(String[] args) {
        Thing yourobj = new Thing();
        System.out.println("Then: "+yourobj.getThatInt());
        yourobj.increment();
        System.out.println("Now: "+yourobj.getThatInt());
    }

    public int getThatInt() {
        return this.someInt;
    }

    public void increment() {
        this.someInt += 1;
    }
}

如果该类是从另一个类调用的,该怎么办?所以我要做的是比较两个数组值,如果它们匹配一个增量值,如果它们不匹配另一个增量值。但是我无法让方法实际更新值,无论我做什么,它都会返回0。如果您有一个包含两个整数的类,
private int failures
private int successfulls
,在比较方法中,您可以这样做(假设在存储这些值的任何类/对象中都有这些值的getter和setter)
if(value1==value2){someObject.setSuccesses(someObject.getsuccessions()+1);}else{someObject.setFails(someObject.getFails()+1;}
这是一种方法,但还有其他方法(例如声明一个公共变量并只调用
someObject.successions+=1
)对象在传递给方法时不会自动复制。