对于同一个类中的不同方法:
一个静态方法可以被其他的静态或非静态方法直接调用;
一个非静态方法可以被其他非静态方法直接调用;
而一个非静态方法只有通过对象才能被其他静态方法调用。
public class Test {
public static void dog(){
System.out.println("dog");
}
public void cat(){
System.out.println("cat");
}
public void animal(){
dog(); //非静态方法animal直接调用静态方法dog()
cat(); //非静态方法animal直接调用非静态方法cat()
}
public static void main(String [] args ) {
dog(); //静态方法main()直接调用静态方法dog()
Test t = new Test(); //静态方法main()通过对象调用非静态方法animal()
t.animal();
}
}
编译并运行,结果如下
dog
dog
cat
对于不同类中的不同方法:
静态方法可以通过类名或对象进行调用;
非静态方法只能通过对象调用。
public class Test1 {
public void animal(){
Test t2 = new Test();
t2.animal(); //非静态方法animal()通过对象进行调用
Test.dog(); //静态方法dog()通过类名进行调用
t2.dog(); //静态方法dog()通过对象进行调用
}
public static void main(String [] args ) {
Test1 t = new Test1();
t.animal();
}
}
编译并运行,结果如下
dog
cat
dog
dog