为了账号安全,请及时绑定邮箱和手机立即绑定

Java如何让两个变量指向同一个原始对象

Java如何让两个变量指向同一个原始对象

繁星淼淼 2021-08-25 16:37:24
我正在用 Java 编写一个平台游戏,其中有各种游戏对象,例如平台、玩家和(最终)敌人。我用矩形描述了这些游戏对象的位置:x 位置、y 位置、宽度和高度。但是,我还想添加其他变量来描述位置:左、上、右和下。对于最后两个,我知道每当修改 x、y、宽度或高度时我都需要更改它们,但是由于 left 和 top 与 x 和 y 相同,我想知道如何让它们指向相同的x 和 y 的值。我认为这可以使用 #define 函数在 C 中完成,但遗憾的是这是 Java,而不是 C。如何让两个不同的变量名指向 Java 中的相同值,以便如果一个变量名发生变化,另一个变量名也会发生变化?编辑:这是我的 GameObject 类的基础知识: public abstract class GameObject {    protected float x;    protected float y;    protected float right;    protected float bottom;    protected float width;    protected float height;    public float getX() {        return x;    }    public float getY() {        return y;    }    public void setX(float x) {        this.x = x;        right=this.x+width;    }    public void setY(float y) {        this.y = y;        bottom=this.y+height;    }    //A bunch of other getters/setters    //Subclasses must have render (for displaying graphics) and tick (mainly for updating position) functions.    public abstract void render(Graphics g);    public abstract void tick();}我想做的是添加另外两个变量:protected float left = x;protected float top = y;并让这些引用与 x 和 y 相同的原语(而不是复制原语)。这显然是不可能的。感谢您的回答
查看完整描述

3 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

就您的意思而言,这不能在 Java 中完成。你可以有两个指向同一个对象的对象引用,但如果你有一个普通的原始变量,它们总是不同的并且不会相互引用。您可以创建一个对象来保存一个原始对象,对同一对象有两个不同的引用,并且通过一个引用对该对象内容的更改将反映在另一个引用中,但是您不能使用int xand 和int ywhere 写作x = 10将 make y == 10


查看完整回答
反对 回复 2021-08-25
  • 3 回答
  • 0 关注
  • 605 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信