你的位置:首页 > Java教程

[Java教程]静态方法中调用非静态方法


有时候面试的时候,面试官会问静态方法里能不能调用非静态方法,这时候呢,你的回答是什么呢?

虽然不能直接调用,但是可以间接的调用,可以通过将一个对象的引用传入静态方法中,再去调用该对象的非静态方法。静态方法通过用传进来的对象引用调用非静态方法,从而达到静态方法调用非静态方法。

 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 }