给出的代码:/**
* @author root
*
*/
package test.test;public class Test { /**
* @param args
*/ public Test(){}
public static void main(String[] args) {
// TODO Auto-generated method stub
double myDouble=1.3 ;
Dcrement myDcre=new Dcrement();
myDcre.decre(myDouble);
System.out.println(myDouble);
}
}
class Dcrement{
public Dcrement(){}
public void decre( double num){
num= num-1.0;
}
}问题:我在main 方法中声明的变量myDouble应该是一个static类型的变量,调用了Dcrement的decre方法将myDoulbe的reference传入,此时的num应该是指向myDouble的,即num指向的地址和为myDouble的静态地址,那在进行了num=num-1.0的计算后,myDouble应该是0.3,可为什么程序的执行结果会是1.3呢?
请高人指点!
* @author root
*
*/
package test.test;public class Test { /**
* @param args
*/ public Test(){}
public static void main(String[] args) {
// TODO Auto-generated method stub
double myDouble=1.3 ;
Dcrement myDcre=new Dcrement();
myDcre.decre(myDouble);
System.out.println(myDouble);
}
}
class Dcrement{
public Dcrement(){}
public void decre( double num){
num= num-1.0;
}
}问题:我在main 方法中声明的变量myDouble应该是一个static类型的变量,调用了Dcrement的decre方法将myDoulbe的reference传入,此时的num应该是指向myDouble的,即num指向的地址和为myDouble的静态地址,那在进行了num=num-1.0的计算后,myDouble应该是0.3,可为什么程序的执行结果会是1.3呢?
请高人指点!
若将myDouble声明为全局的静态变量的结果也是一样,真的不明白是为何
对象才是有引用之说。
(引用本身也遵循值传递,和c/cpp同出一辙)