静态方法中调用非静态方法

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

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

 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 }

 

  

posted @ 2016-01-23 18:18  phil_jing  Views(6451)  Comments(1Edit  收藏  举报