Java中如何改变参数的值(实现按址传递)

2024-12-23 01:12:48
推荐回答(5个)
回答1:

java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清。你的题目本身就有歧义,无法直接针对题目作答(因为java不存在类似c或c++那样的传址)。我从头讲起:
(一)基本数据类型:传值,方法不会改变实参的值。
(二)对象类型参数:传引用,方法体内改变形参引用,不会改变实参的引用,但有可能改变实参对象的属性值。例如
public class TestFun4 {
public static void testStringBuffer(StringBuffer sb){
sb.append("java");//改变了实参的内容
}
public static void main(String[] args) {
StringBuffer sb= new StringBuffer("my ");
new TestFun4().testStringBuffer(sb);
System.out.println("sb="+sb.toString());//内容变化了
}
}

回答2:

java语言里面没有地址传递,只有值传递!

回答3:

楼主学过拆箱装箱了吗?
值传递和引用传递有区别的
一个是在堆里改数据,一个只是直接引用而已。

回答4:

java
没有按地址传递。

你可以通过传递对象来达到。比如传入数组。

回答5:

按照这样写就可以了:
public class Test {

private static Integer a;
private static Integer b;

public void setA(Integer a) {
this.a = a;
}

public void setB(Integer b) {
this.b = b;
}

/* 在此方法中实现交换两个参数的值 */
public void swap(Integer a, Integer b) {
setA(b);
setB(a);
}

public static void main(String[] args) {
a = new Integer(10);
b = new Integer(5);
System.out.println("a=" + a + "\tb=" + b);
new Test().swap(a, b);
System.out.println("a=" + a + "\tb=" + b);
}

}