
java传递引用的问题,为什么传递后,test1方法对变量值的改变不影响这里的a
packagedzsfds1;publicclass传递引用1{privatevoidtest1(Stringa){a="s";System.out.println("t...
package dzsfds1;
public class 传递引用1 {
private void test1(String a){
a = "s";
System.out.println("test1方法中的a="+a);
}
public static void main(String[] args) {
传递引用1 t = new 传递引用1();
String a = "v";
System.out.println(a);
t.test1(a);//传递后,test1方法对变量值的改变不影响这里的a
System.out.println("main方法中的a="+a);
}
} 展开
public class 传递引用1 {
private void test1(String a){
a = "s";
System.out.println("test1方法中的a="+a);
}
public static void main(String[] args) {
传递引用1 t = new 传递引用1();
String a = "v";
System.out.println(a);
t.test1(a);//传递后,test1方法对变量值的改变不影响这里的a
System.out.println("main方法中的a="+a);
}
} 展开
展开全部
因为传递的是个数据类型,不是对象。
对象可以被方法改变(改变其中的属性等)
数据类型必须通过 等号“=” 来对内存进行改变
由于main中没有 对 a重新赋值(没有看到=),所以a不会改变
privat void test1(String a){
return "s";
}
public static void main(String[] args) {
String a = "v";
System.out.println(a);
a=test1(a);
System.out.println("main方法中的a="+a);
}
这样写就改变 main 中的 a 了,
另外,在同一个类中的方法调用时,可以不用 实例化 类。
就是 传递引用1 t = new 传递引用1(); 不用写
对象可以被方法改变(改变其中的属性等)
数据类型必须通过 等号“=” 来对内存进行改变
由于main中没有 对 a重新赋值(没有看到=),所以a不会改变
privat void test1(String a){
return "s";
}
public static void main(String[] args) {
String a = "v";
System.out.println(a);
a=test1(a);
System.out.println("main方法中的a="+a);
}
这样写就改变 main 中的 a 了,
另外,在同一个类中的方法调用时,可以不用 实例化 类。
就是 传递引用1 t = new 传递引用1(); 不用写

2025-09-24 广告
URule Pro Java 规则引擎,一款给业务人员使用的可视化商业决策规则引擎系统,打开浏览器即可开始设计业务规则;URule Pro是一款自主研发纯Java规则引擎,亦是一款国产智能风控决策引擎,可以运行在Windows、Linux、...
点击进入详情页
本回答由锐道提供
展开全部
test1的参数a是形参,传进去的变量a是实参,test1执行的时候,形参和实参都指向"v",然后形参a赋值为"s",实参a没有改变,所以没有影响
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-10
展开全部
楼主,JAVA 规定,简单类型是传值的,复合类型(暂且这样称呼吧)才是传址的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询