Main中:
- Java code
long a_long=0L;Long a_Long=0L;A a_Class=new Main.A(0);test_long(a_long);testClass(a_Class);testLong(a_Long);
调用的方法
- Java code
private static void testLong(Long a){ a=111111111111L; } private static void test_long(long a){ a=111111111111L; } private static void testClass(A a){ a.setA(111111111L); }
Class A为:
- Java code
public class A{ private Long a; public void setA(Long a) { this.a = a; } public Long getA() { return a; } public A(long a){ a=Long.valueOf(a); } }
test_long(a_long);
testClass(a_Class);
都很容易理解,但是Long其实也是一个java.lang中定义的一个Class
testLong(a_Long);
为什么testLong中改变参数的值时不影响调用方呢???
求喷,求指导,求蹂躏啊!!!!
------解决方案--------------------------------------------------------
Java只有形参,没有实参。如果你以为是实参说明你理解错误了:
a = xxxxxxx; 这是直接对形参进行操作。
a.setA(111111111L); 这是调用了形参所引用对象的函数。
能理解么?