静态变量的定义位置
2011年09月01日
public class B { public int aMethod() { static int i = 0; i++; return i; }
上边这个代码的错误就是:类的实例方法中不能定义静态变量。看看下面这面的 public class B { public static int aMethod() { static int i = 0; i++; return i; }
这个还是错误的。所以大家要记住:在类的实例方法和静态方法中都不能定义静态变量。那么只能能定义静态变量呢?
下面说一下具体原理:
只有类才存在静态的变量 方法只能对静态变量的操作 不能在方法内试图定义静态变量
否则的话会抛出编译错误
静态变量的本意是为了让所有的对象共享这个变量,如果在方法里面定义静态变量的话就存在逻辑错误了,也达不到你想要目的. 因为在方法定义静态变量根本没有他的任何意义. 任何对象都有自己的方法,即使是静态方法,方法内的变量也是在方法调用时候才开始分配内存,所以想给成静态的在逻辑上存在问题
2011年09月01日
public class B { public int aMethod() { static int i = 0; i++; return i; }
上边这个代码的错误就是:类的实例方法中不能定义静态变量。看看下面这面的 public class B { public static int aMethod() { static int i = 0; i++; return i; }
这个还是错误的。所以大家要记住:在类的实例方法和静态方法中都不能定义静态变量。那么只能能定义静态变量呢?
下面说一下具体原理:
只有类才存在静态的变量 方法只能对静态变量的操作 不能在方法内试图定义静态变量
否则的话会抛出编译错误
静态变量的本意是为了让所有的对象共享这个变量,如果在方法里面定义静态变量的话就存在逻辑错误了,也达不到你想要目的. 因为在方法定义静态变量根本没有他的任何意义. 任何对象都有自己的方法,即使是静态方法,方法内的变量也是在方法调用时候才开始分配内存,所以想给成静态的在逻辑上存在问题