package com.test;
public class TestArgs {
private
String str;
TestArgs(String str){
this.str=str;
}
public String getStr() {return str;}
public void setStr(String str) {this.str = str;}
public static void m1(TestArgs arg1,TestArgs arg2){
arg1.setStr("EARTH");
arg2=arg1;
}
public static void main(String[] args) {
TestArgs ar1=new TestArgs("SUN");
TestArgs ar2=new TestArgs("MOON");
m1(ar1,ar2);
System.out.println("ar1:"+ar1.getStr());
System.out.println("ar2:"+ar2.getStr());
}
}
OUTPUT :
ar1:EARTH
ar2:MOON
why only ar1 is reflecting not ar2
.In
java objects are always passed by reference(passing the copy of reference variable).same hare I have passed the copy of reference ar1 & ar2.In method m1() arg2=arg1.It should reflect in main also.
Thanks