有时候面试的时候,面试官会问静态方法里能不能调用非静态方法,这时候呢,你的回答是什么呢?
虽然不能直接调用,但是可以间接的调用,可以通过将一个对象的引用传入静态方法中,再去调用该对象的非静态方法。静态方法通过用传进来的对象引用调用非静态方法,从而达到静态方法调用非静态方法。
1 public class StaticMethodClass{ 2 void NonStaticMethod(){ 3 System.out.println("This is a non-sataic method."); 4 } 5 6 static void StaticMethod(StaticMethodClasst s){ 7 System.out.println("This is a static method."); 8 s.NonStaticMethod(); 9 } 10 11 public static void main(String[] args) { 12 StaticMethodClass obj=new StaticMethodClass(); 13 StaticMethod(obj); 14 } 15 }