无法从静态调用非静态方法 - 同一个类

时间:2013-11-08 14:35:42

标签: java methods static non-static

我有一个类,在其中我有一些静态和一些非静态方法,所以当我尝试从静态方法访问非静态方法时,我得到了那个着名的错误。每当我在这个论坛上搜索时,我会在有两个课程的时候得到解决方案。我的问题是如果它们在同一个类中,如何从静态方法调用非静态方法?

我正在尝试

new ClassName().methodName(); 

但是我的方法包含发送Intent和finish(),所以如果我创建的其他对象比完成不起作用。

1 个答案:

答案 0 :(得分:5)

要从静态方法调用non-static method,您必须首先拥有包含非静态方法的instance of the class

非静态方法在类的实例上调用,而静态方法属于该类。

class Test
{
   public static void main(String args[])
   {
      Test ot =new Test();
      ot.getSum(5,10);     // to call the non-static method
   }

   public void getSum(int x ,int y) // non-static method.
   {
      int a=x;
      int b=y;
      int c=a+b;
      System.out.println("Sum is " + c);

   }
}

希望这有帮助。