📅  最后修改于: 2020-09-25 14:49:16             🧑  作者: Mango
在java中只有值调用,没有引用调用。如果我们调用一个传递值的方法,它被称为按值调用。在被调用方法中所做的更改不会影响到调用方法。
在按值调用的情况下,原始值不会改变。让我们举一个简单的例子
class Operation{
int data=50;
void change(int data){
data=data+100;//changes will be in the local variable only
}
public static void main(String args[]){
Operation op=new Operation();
System.out.println("before change "+op.data);
op.change(500);
System.out.println("after change "+op.data);
}
}
在通过引用进行调用的情况下,如果我们在被调用方法中进行了更改,则原始值将被更改。如果我们传递对象代替任何原始值,则原始值将被更改。在此示例中,我们将对象作为值传递。让我们举一个简单的例子:
class Operation2{
int data=50;
void change(Operation2 op){
op.data=op.data+100;//changes will be in the instance variable
}
public static void main(String args[]){
Operation2 op=new Operation2();
System.out.println("before change "+op.data);
op.change(op);//passing object
System.out.println("after change "+op.data);
}
}