gpt4 book ai didi

java - 从另一个类调用方法来获取 x 和 y 问题

转载 作者:行者123 更新时间:2023-12-01 10:14:57 24 4
gpt4 key购买 nike

如果标题不合适,我们深表歉意,我不知道该如何调用它。

场景:我有一个 Java 宇宙类型项目,您可以在宇宙中找到不同类型的事物(恒星、行星、 cometd 等)。

这是我大学类(class)的一部分,而我只专注于其中一部分

我有一个名为 Space_Object 的类,它是一个父类(super class),宇宙中发现的所有事物都继承它。父类(super class)具有 xPosition、yPosition 等变量。

我目前正致力于让行星恒星运行。我试图获取一颗恒星的 x,y 坐标,以便行星可以围绕它运行(可以有多个行星和恒星)。现在我正在经过这颗恒星,每当形成一颗新行星时,行星都会作为一个场围绕它运行。

我在 Planet 内部创建了 getter 来检索 Star 的 x,y (有效)。我被困在如何使用 x 和 y 来改变地球的起点上。这是我添加到 Universe 类中的内容:

public void setCoordsOfPlanet(Planet planetObj)
{
planetObj.xPosition = planetObj.getSolarSystemX();
}

这给了我一个错误:

xPosition has private access in Space_Object

我不得公开任何字段。

行星类别:

public class Planet extends Space_Object
{
private int distanceFromStar;
private int orbitSpeed;
static Star solarSystem;


public Planet(int disFromStar, int orbSpeed, Star solSystem, int objectDiameter, Color objectColor, Universe theUniverse)
{

super(0, 0, 0, 0, objectDiameter, objectColor, theUniverse);
distanceFromStar = disFromStar;
orbitSpeed = orbSpeed;
solarSystem = solSystem;
}

public int getSolarSystemX ()
{
return solarSystem.getXPosition();
}

public int getSolarSystemY ()
{
return solarSystem.getYPosition();
}
}

以防万一,Space_Object 构造函数:

public Space_Object(int xPos, int yPos, int xVel, int yVel, int objectDiameter, Color objectColor, Universe theUniverse)
{
xPosition = xPos;
yPosition = yPos;
xSpeed = xVel;
ySpeed = yVel;
color = objectColor;
diameter = objectDiameter;
universe = theUniverse;
universeHeight = universe.getUniverseHeight();
universeWidth = universe.getUniverseWidth();
lifeTime = 1000000;

}

我是从完全错误的角度来处理这个问题的吗?在过去的三个小时里,我一直在尝试改变有关此事的事情,但没有取得任何进展 - 感谢任何帮助。如果您需要更多代码,请告诉我。

PS:宇宙中的所有项目都是对象,并在 Canvas 上表示为色环。

最佳答案

如果您问如何修改另一个类的 private 字段:那么您需要做的就是在 Space_ObjectPlanet 中添加 setter 方法 类,例如:

public class Planet {
...
public setCoor(int x, int y) {
this.xPosition = x;
this.yPosition = y;
}
}

现在您可以从 Star 类调用此方法:planet.setCoor(x, y)

如果您希望只能从同一包的类访问此方法,请删除 public

关于java - 从另一个类调用方法来获取 x 和 y 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35952872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com