代码是
public class ctorsandobjs {
private int a;
public int b;
public ctorsandobjs(String arg)
{
System.out.println("I got " + arg);
}
public void add(int a,int b)
{
System.out.println("Addition is " + String.valueOf(a+b));
}
public static void main(String args[])
{
ctorsandobjs c = new ctorsandobjs("You");
c.a = 12;
c.b = 15;
add(c.a,c.b); //compiler shows error here
}
}
我正在使用Eclipse Luna IDE和JDK 8 ... 你能告诉我为什么编译器在这里显示错误..... "无法对ctorsandobjs"
类型的非静态方法add(int,int)进行静态引用我是JAVA的新手...
如果可能的话建议解决方案
答案 0 :(得分:0)
您不能从静态函数中引用非静态成员(private int a; public int b)。
答案 1 :(得分:0)
void serialize(serializer_t &serializer, abc_t &abc)
方法不是静态方法,因此您需要在类add
的实例上调用它,例如:
ctorsandobjs
答案 2 :(得分:0)
add
是non-static
方法,所以你必须从类的对象中调用它
你必须这样做:
c.add(c.a, c.b);