本帖最后由 skyfly 于 2014-4-14 01:59 编辑
你这些代码 一定系统报错! 因为你定义了静态变量, 这个方法必须也要是静态的才行。 认真想想,方法不定义成静态怎么直接被所有对象调用,那么你定义的静态变量有什么意义呢
可以修改成
public static class Test{
int i=0; //此处不需要加static 局部变不能用静态修饰…因为局部变量它定义的局部使用,不能长期存在,而静态变量会一直保存在内存 中,两者本/质上是冲突的. //变量分成局部变量和成员变量,成员变量又分成类变量(用static修饰)和实例变量,静态方法可以调用所有的成员变量,普通方法只能调用非静态变量,也就是实例变量
public int aMethod( ){
i++;
return i;
}
public static void main(String [] args){
Test test = new Test( );
test.aMethod( );
System.out.println(test.aMethod( ));
} |
至于得出的值为何为2. 是因为 : test.aMethod( ); //调用了函数,i=0+1,但是没有打印出来
System.out.println(test.aMethod( )); //再次调用 了test.aMethod( ),i=i+1
静态成员(属性和方法)都是类特有的,是为了各个对象共享数据的。建议在以下条件达成时使用:
1.变量所包含的对象体积较大,占用内存较多。 2.变量所包含的对象生命周期较长。 3.变量所包含的对象数据稳定。 4.该类的对象实例有对该变量所包含的对象的共享需求。
|