public class MyCalculator
{
  private JTextField display=new JTextField(20);
  public void initApp()
  {
  }
  public static void main(String[] args)
  {     MyCalculator cls = new MyCalculator();
cls.initApp();
    //引用display域就会报错,提示display不是static
    //调用initApp()方法也会报错,提示initApp()不是static
  }
}

解决方案 »

  1.   

    public class MyCalculator
    {
      private JTextField display=new JTextField(20);
      public void initApp()
      {
      }
      public static void main(String[] args)
      {     MyCalculator cls = new MyCalculator();
    cls.initApp();
        //引用display域就会报错,提示display不是static
        //调用initApp()方法也会报错,提示initApp()不是static
      }
    }
      

  2.   

    public class MyCalculator
    {
      private JTextField display=new JTextField(20);
      public void initApp()
      {
      }
      public static void main(String[] args)
      { 
         MyCalculator my = new MyCalculator();
       my.display();
       my.iniAPP();
      }
    }
    main 是static,要调用类中其他方法,必须是static方法。注意理解static的真正含义。
      

  3.   

    我主要就是不明白怎么可以通过主类MyCalculator的对象来调用类的非static方法,谢谢大家指点!
      

  4.   

    通过主类不能直接调用非static 的方法
    可以这样写
    public class MyCalculator
    {
      private JTextField display=new JTextField(20);
      public void initApp()
      {
      }
      public static void main(String[] args)
      { 
          new MyCalculator().initApp;
          
      
      }
    }
      

  5.   

    忘了写括号
    new MyCalculator().initApp();
      

  6.   

    只有Static 著名的变量和方法才可以在不产生类实例的情况下,直接由ClassName.VarName; or ClassName.MethodName();方法来调用。 当调用类的实例变量时,只有实例话这个类,一般采用 new ClassName();的形式。 建议你多看看TIJ上Charpter 4部分内容。
      

  7.   

    只要你不在类的方法前面加 static 修饰,那么这个方法就是实例方法,也就是只有类实例化为对象后才可以调用它
    public static void main(String[] args)

       MyCalculator my = new MyCalculator();//类 MyCalculator 实例化为对象 my
       my.iniAPP(); // 现在对象 my 可以使用实例方法
    }