Java中的值传递和引用传递
C和Java使用参数传值是用其实参值来进行初始化形参的值。对于基本变量,C和C++允许显式传递变量的地址(引用传递),在scanf函数中的参数前面的&地址符可以见得。而Java不允许这样做,因为Java对普通类型变量不支持引用传递Java的方法传递只有值传递一种,即将实际的参数值的副本传入方法,而参数不受影响
所以我们写一个测试代码来试验一下:
package test;
class testObj{
private int m = 1;
private String s = "测试obj";
void setM(int m) {
this.m = m;
}
void setS(String s){
this.s = s;
}
String getS(){
return s;
}
}
public class test {
private static void inttest(int n){
System.out.println(n++);
}
private static void testobj(testObj n){
n.setS("testobj");
}
private static void teststring(String[] s){
s[0] = "teststring";
}
public static void main(String[] args){
int n = 0;
test t = new test();
testObj to = new testObj();