首先我们需要明白的是静态的变量和方法都是属于类本身的,在类一加载就进行初始化的操作,而普通变量和普通方法都是在调用构造函数的时候才会对其进行初始化操作,从根本上出发去判断,静态变量和静态方法初始化时间都是早于普通变量和普通方法的,这导致静态方法在调用普通变量、方法的时候都需要,在静态方法里面进行new对象调用构造器初始话的操作,再进行调用普通变量和方法,而普通方法调用静态变量、方法,都可直接调用。
普通方法调用静态方法和静态变量
public class Test_One {
static int height=1;
public static void testOne(){
System.out.println("testOne");
}
public void testTwo(){
System.out.println(height);
testOne();
}
public static void main(String[] args) {
new Test_One().testTwo();
}
}
静态方法调用普通变量和普通方法
public class Test_One {
int length=1;
public void show(){
System.out.println("普通方法");
}
public static void testThree(){
System.out.println(new Test_One().length);
new Test_One().show();
}
public static void main(String[] args) {
Test_One.testThree();
}
}