除非我返回值,否则为什么静态方法无法更改值

时间:2015-10-01 04:32:15

标签: java static static-methods

我今天学习了静态方法,我对静态方法中值的变化感到困惑。 当我写这样的静态方法时

public class test{
public static int printInt(int t,int n){
System.out.println(t);
t= t + n;
return n;
}
}

并在主

中调用它
public class Method {
public static int i;
public static int m;
public static void main(String[] args){
    i = 5;
    m = 6;

    test.printInt(i,m);
    System.out.println(i);
}
}
不要像我想的那样改变。 如果静态方法只改变你返回的值?

1 个答案:

答案 0 :(得分:0)

最简单的术语static表示属于该类的东西。在上面的代码方法中,printInt属于类test,而不属于此类的特定实例。

在另一个类Method中的main方法中,您尝试将局部变量im作为参数传递,并且由于它们的副本将传递给方法{ {1}}。您对复制而不是实际参数进行更改。所以变化不会反映在主要方法中。

注意:在Java中使用camel-case和其他标准编码约定。同样命名一个类printInt是一个坏主意。