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