无法从静态上下文中引用非静态方法

2024-12-28 22:23:47
推荐回答(2个)
回答1:

你可以将add定义为静态方法
public static int add(int i,int j)
下面的double也是一样前面加上public static
这样的话就可以在任何地方以类名.方法名来使用了。
为什么会这样呢,是因为main方法是一个静态方法,是给JVM调用的,
而你的add是q5的一个方法,必须要先实例化出一个q5对象。即new q5()

回答2:

public class q5
{
public static void main(String args[])
{
int i1=3,i2=5;
char c1='a',c2='b';
float f1=3.1f,f2=4.1f;
double d1=2.5,d2=3.8;

q5 q = new q5();

System.out.println(q.add(i1,i2));
System.out.println(q.add(c1,i1));
System.out.println(q.add(i1,f1));
System.out.println(q.add(f1,d2));
System.out.println(q.add(d1,i2));
}
int add(int i,int j)
{return i+j;}
double add(double i,double j)
{return i+j;}
}