鉴于此代码:
public class Test {
public void add(int x){
x++;
}
public static void main(String args[]){
Test t = new Test();
int a = 1;
t.add(a);
System.out.println(a);
}
}
我只想打印出2而不是1.我想我称这种方法错了。 你能帮我理解为什么吗?
答案 0 :(得分:1)
java按值传递,这意味着您的变量被序列化并且其值被发送到方法。
要打印2,您需要使方法在增量后返回值。
答案 1 :(得分:1)
您的方法被宣布为无效,因此它不会返回任何内容。变量 a 在使用它来调用方法 add 时将始终保持不变。
它应该是,为了您的目的:
public int add(int x){
return x++;
}
答案 2 :(得分:1)
您的代码中存在很多错误,您应该正确学习Java。它表明你并不了解一元运算符,它们与Java没有严格的关系。
然而,其中一个可能的解决方案(有很多)是将代码更改为:
public class Test {
public int add(int x){
return ++x;
}
public static void main(String args[]){
Test t = new Test();
int a = 1;
a = t.add(a);
System.out.println(a);
}
}
再次,在尝试任何练习或在SO上发布之前,要正确学习Java。 下次,在发布新问题之前,请查看how to ask。