Java使用方法添加到整数

Java使用方法添加到整数,java,methods,static,void,addition,Java,Methods,Static,Void,Addition,我遇到了一个相对简单的问题:我试图使用另一个类中的方法添加到我的主类中的整数,但我的整数的值没有增加,值保持不变,这是代码的样子: public class prog{ /** * @param args * @throws MidiUnavailableException */ public static void main(String[] args) { int num = 11; thing.add(num); System.out.println(num); } } 这类

我遇到了一个相对简单的问题:我试图使用另一个类中的方法添加到我的主类中的整数,但我的整数的值没有增加,值保持不变,这是代码的样子:

public class prog{

/**
 * @param args
 * @throws MidiUnavailableException 
 */

public static void main(String[] args) {
int num = 11;
thing.add(num);
System.out.println(num);
}
}
这类“东西”是:

public class chords2 {

static void add(int val){
    val = val+9;

}
}


任何关于如何使其工作的提示都是非常值得赞赏的

您的thing类中应该有一个私有的int-val,否则在add()方法中添加“return”语句,并将返回值设置回调用位置。

在Java中,
int
是按值传递的。如果要添加,应返回值并重新分配

static int add(int val){
    return val+9;
}
那么就叫它,

int num = 11;
num = thing.add(num);
因此,在您的示例中,如果在方法内部修改整数
val
,则它在外部不会产生效果

你能做什么?

您可以声明方法以返回一个
整数
,然后将结果分配给所需的变量:

static int add(int val){
    return val + 9;    
}
当你称之为:

int num = 11;
num = SomeClass.add(num); // assign the result to 'num'

不仅仅是
int
,一切都是按值传递的。@Keppil,True,但大多数对象都是引用,我不想深入讨论引用与值类型的关系。所以我做了一个真实的陈述,有点不完整。我想这很公平。谢谢,我只需要重新分配这个有效的值perfectly@AmirBawab你为什么这么说?是的@Amir,Java中的所有东西都是按值传递的。@AmirBawab我建议你阅读。是的,它让人困惑。尽管如此,我的答案是正确的,所以如果你投了反对票,请撤销它。另外,您会说“值是指变量内数据的副本…”,但请注意,对象的值是一个引用