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 ));
}
}
静态方法和实例方法的区别主要体现在两个方面:
1.在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
2.静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。
静态方法调用和实例方法调用详细代码如下:
public class Foo{
public static void callMe(){
System.out.println("This is a static method.");
}
public static void main(String args[]){
Foo.callMe(); //1.调用静态方法时,不创建对象,直接调用静态方法
Foo f = new Foo(); //2.调用示例方法时,创建一个对象
f.callMe(); //利用对象来调用静态方法
}
} |