正确的调用方式如下:
Foo foo = new Foo();
int j=foo.i;
foo.m1();
另外你这个程序也定义了静态成员变量和静态方法,这个可以直接在main方法中使用,如下:
int x=k;
m2(1,2); 作者: 杨政 时间: 2012-7-18 21:40
静态只能调用静态,不能直接调用飞静态。主函数是静态的,不能在其中直接使用非静态变量i 和直接调用非静态方法m1();
静态static修饰 可以调用静态,不可以直接调用非静态。
非静态无static修饰 可以调用静态和非静态。作者: 陈欢 时间: 2012-7-18 21:40
public class Foo {
int i = 5;
static int k = 2;
public static void main (String[] args){
int j = i;//错误,i是非静态成员变量
m1();//错误,m1是非静态成员方法
}
public void m1() {
i = i+k + m2(i,k);
}
public static int m2(int i,int j) {
return (int) (Math.pow( i , j ));
}
}