main函数是静态函数,系统运行程序是它是入口,即先调用他。但是系统不创建此类的实例,所以不能用this指针

解决方案 »

  1.   

    public static void main(String[] args){
        ShowDate o = new ShowDate() ;
        System.out.println(o.aaa());
      }
      

  2.   

    没有实例化的类只能调用其静态方法
    请先实例化ShowDate类,再调用aaa()
    或者改为静态方法String static aaa(){}
      

  3.   

    第一种方法:用对象来调用,向楼上的做法
    第二种方法:把方法声明成static aaa() ;就可以因为你在这一个类(ShowDate)里就不可以了,程序认为是aaa()是non-static类你可以把程序拆成两个类来试试
    《-----仁者见仁,智者见智-----〉
      

  4.   

    this只用于方法内部,它负责返回调用这个方法的对象的feference。你可以把this对象的reference当作任何对象的reference,它常用于return语句以返回当前对象的reference
    static它的意思是,这个方法没有this。
      

  5.   

    import java.util.*;public class ShowDate{
      String aaa(){
        String asp=Calendar.toString();
        return asp;
      }public static void main(String[] args){
        ShowDate date = new ShowDate() ;
        System.out.println(date.aaa());
      }
    }
      

  6.   

    楼上的代码请问你编译通过了吗?我这里编译通不过!这是我的代码:
    import java.util.*;
    import java.text.SimpleDateFormat;
    public class ShowDate{
      String aaa(){
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     Calendar cal = Calendar.getInstance();
     Date FDate=cal.getTime();
         String asp=sdf.format(FDate);
        return asp;
      }public static void main(String[] args){
        ShowDate date = new ShowDate() ;
        System.out.println(date.aaa());
      }
    }
      

  7.   

    non-static的方法是不能在static方法中直接调用的。
    解决有两种方法:
    1.把aaa()定义为static;
    2.在main()中先创造一个本类的对象,比如ShowDate day=new ShowDate();然后再调用day.aaa()就可以了。