我知道static方法 只能引用静态变量和静态的方法 。那么我们在类里面写的函数并不是静态的时候,在static方法里面为什么能够调用这个类的方法呢?
感觉有点想不通!

解决方案 »

  1.   

    这个你要分清类成员与对象成员,类方法与对象方法的区别。你在static方法里面不能使用非静态类成员和非静态类方法,但是可以使用非静态对象成员和非静态对象方法。
      

  2.   

    静态方法和非静态方法:
    1.静态方法属于类方法,非静态方法属于实例方法(也就是上面所说的对象方法);
    2.静态方法:我们都知道main()是静态方法吧,在它里面"直接"调用属性和方法的时候,那些属性和方法必须是静态的.
      如果你要调用的是非静态方法,你需要实例个对象出来,用"对象名.方法名()"进行调用;
      

  3.   

    我也有个问题除了"类名.静态方法()"和"对象名.方法()"外,还有其它可以调用的方法么...非static方法难道有其它的调用形式吗
      

  4.   

    class  T{
    public T(){}
    public void println(){
     System.out.println("abc");
    }
    public static void print(T a){
    a.println();
    } public static void main(String[] args) {
    T t=new T();
    print(t);

    }
    }
    大概LZ是这个意思 在静态方法中,为什么能调用非静态方法。我这里在静态方法里通过对象就可以调用。