如过我写了两个函数一个是static型的一个是非static型的
怎么样才能才static型的函数中调用非static型的函数
例如:
public static void first()
{
int m = 0;
System.out.println(m);
second();//这样调用会报错,应该怎么改?
}
public void second()
{
int i = 1;
System.out.println(i);
}

解决方案 »

  1.   

    不能调用,因为static是不需要类实例的,而非static是需要类实例的。
      

  2.   

    不能调用。java这样设计的目的是:
    static方法的调用是不需要对象的,只需要类。例如main函数,在对象产生之前就已经存在。
    而非static方法是需要对象的, 即创建了对象,此类函数才存在。所以static方法不能调用非static方法,但反过来可以。以上代码应改为:
    public static void first()
    {
    int m = 0;
    System.out.println(m);
    YourClass yc=new YourClass();//先建立对象
    yc.second();//然后调用此对象的方法
    }
    public void second()
    {
    int i = 1;
    System.out.println(i);
    }
      

  3.   

    楼主没有弄明白static的含义. static存在的时候, 对象都还不存在呢, 不创建对象, 又怎么去调用对象的函数呢?
      

  4.   

    static方法的调用是不需要对象的,只需要类。
    而非static方法是需要对象的。