为什么静态方法不能改变值,除非我 return 值
Why static method cannot make values change unless I return the values
今天学习了静态方法,对于静态方法内部的值是如何变化的,一头雾水。
当我这样写静态方法时
public class test{
public static int printInt(int t,int n){
System.out.println(t);
t= t + n;
return n;
}
}
并在 main
中调用它
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);
}
}
t 并没有像我想的那样改变。
如果静态方法只改变你 return?
的值
术语 static
用最简单的术语表示属于 class 的事物。在上面的代码方法 printInt
属于 class test
而不是这个 class.
的特定实例
在另一个 class Method
的主要方法中,您试图将局部变量 i
和 m
作为参数传递,并且由于它们的副本将传递给方法 printInt
。您对复制而不是实际参数进行更改。因此更改不会反映在主要方法中。
注意:在 Java 中使用驼峰式大小写和其他标准编码约定。另外命名 class Method
是个坏主意。
今天学习了静态方法,对于静态方法内部的值是如何变化的,一头雾水。 当我这样写静态方法时
public class test{
public static int printInt(int t,int n){
System.out.println(t);
t= t + n;
return n;
}
}
并在 main
中调用它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);
}
}
t 并没有像我想的那样改变。 如果静态方法只改变你 return?
的值术语 static
用最简单的术语表示属于 class 的事物。在上面的代码方法 printInt
属于 class test
而不是这个 class.
在另一个 class Method
的主要方法中,您试图将局部变量 i
和 m
作为参数传递,并且由于它们的副本将传递给方法 printInt
。您对复制而不是实际参数进行更改。因此更改不会反映在主要方法中。
注意:在 Java 中使用驼峰式大小写和其他标准编码约定。另外命名 class Method
是个坏主意。