下面的例子可以解释这几个的关系
public class Test {
int a= 8;static int b = 10;
Test(){
}
//静态方法
public static void a(){System.out.println(",我是一个静态方法,所以只能引用静态变量b:"+b);
}
//实例方法
public void c(){System.out.println("我是实例方法,我可以用静态变量b:"+b);
System.out.println("我是实例方法,我也可以引用实例变量a:"+a);
}
/*
* 静态方法可以引用静态方法,也可以引用非静态方法,但必须在初始化一个实例之后,用(实例 . 非静态变量)引用
*/
public static void main(String[] args){
//System.out.println("我是非静态变量"+a);
//使用(类名.静态变量)引用静态变量会提高程序的可读性System.out.println("我是静态变量"+b);
Test test = new Test();
System.out.println("我是非静态变量"+test.a);
}
}
注意 :1: 静态方法只能用静态变量引用,(在没有创建实例的前提下),因为当类还没有初始化的时候就可以使 用静态方法,但这个时候,非静态变量还没有产生。
2: 静态变量:他是属于整个类的变量,而不是某个对象的变量,不能将任何方法体内的变量声明成静态 的。
3: 实例方法可以引用实例变量,也可以引用静态变量,在引用静态变量时(类名.静态变量)可以提高程 序的可读性。