我一直在玩继承和抽象类。我想知道为什么我不能在update方法中将这两个方法一起添加,因为它们都返回一个值。
package com.dashed.game;
import static org.lwjgl.opengl.GL11.*;
import com.dashed.game.entity.MoveableEntity;
public class Box extends MoveableEntity {
public Box(double x, double y, double width, double height) {
super(x, y, width, height);
setDx(0.5);
}
public void update(){
getX() += getDx();
}
public void draw(){
glBegin(GL_QUADS);
glVertex2d(getX(), getY());
glVertex2d(getX() + getWidth(), getY());
glVertex2d(getX() + getWidth(), getY() + getHeight());
glVertex2d(getX(), getY() + getHeight());
glEnd();
}
}
答案 0 :(得分:3)
您无法为值指定值。据推测,getX()
方法返回的值不是void
。值只能分配给变量,例如:
int x = getX();
x += getDx();
setX(x); // May need to do something like this too.
答案 1 :(得分:0)
getX()
是一个只读方法,用于仅返回其值。如果你想设置它,应该有一个setter,然后你可以更新它的值,如:
setX((getX() + getDx()));
答案 2 :(得分:0)
getX() += getDx();
你是什么意思? getX()只是一个整数值,它不代表某些变量。
也许您应该使用某种方法来分配x
:
setX(getX() + getDx());
您可以通过google查找lvalue
/ rvalue
之类的内容,了解您可以在赋值语句的正确部分使用的内容。
答案 3 :(得分:0)
getX() += getDx();
相当于:
getX() = getX() + getDx();
您无法向方法添加内容。您需要在赋值表达式的左侧使用数字变量(lvar)。