使用赋值运算符添加两个方法

时间:2014-05-05 18:29:05

标签: java opengl

我一直在玩继承和抽象类。我想知道为什么我不能在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();
}

}

4 个答案:

答案 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)。