【小白求解】关于静态变量的问题,问下代码的问题
public class x {
private static int a;
public static void main(String[] args) {
modify(a);
System.out.println(a);
}
public static void modify(int a) {
a++;
}
}
这个要怎么稍作修改能使a=1啊,还有就是private static int a;这一行 为什么与public static void main(String[] args)互换会产生错误?谢谢大虾。。
------解决方案--------------------为什么不能打印1,是因为这里是值传递,并不是对象传递,int a,这里的a不是对象,只是代表了一个整数
改成这样:
public class x {
public static void main(String[] args) {
modify();
System.out.println(a);
}
private static int a=0;
public static void modify() {
a++;
}
}
至于你说的互换报错的问题, 没出现这个情况
------解决方案--------------------
1、他处理的方法和你不一样。
你是想通过传参修改a(因为是基本数据类型,值传递,所以改不了a),而他的modify是直接修改全局变量a。
2、方法体内不能有权限修饰符
------解决方案--------------------
1.思维,要面对对象,而不要面向过程,别几个方法把需要处理的数据传来传去了。
2.类里面声明的static变量为类变量,非static变量为对象变量;方法里声明的变量只能是临时变量。