Java 如何让多个类相互通信

Java 如何让多个类相互通信,java,class,object,applet,Java,Class,Object,Applet,我正在为我的编程类制作一个简单的java小程序游戏,遇到了另一个问题。在游戏中,用户可以使用上下箭头在y轴上的四条“车道”之间移动。空格将绘制子弹沿x轴沿车道向下移动的图像,并在到达x轴上的某个点时移除该子弹。现在我正在努力使屏幕上一次可以有不止一颗子弹 我一直在看MyBringBack在YouTube上用Java小程序开发游戏的系列节目,找到了解决方案。我知道我应该将“player”作为一个单独类中的对象,这样我就可以轻松地调用它的多个实例。问题是在YouTube系列中,他在使用形状,而我在使

我正在为我的编程类制作一个简单的java小程序游戏,遇到了另一个问题。在游戏中,用户可以使用上下箭头在y轴上的四条“车道”之间移动。空格将绘制子弹沿x轴沿车道向下移动的图像,并在到达x轴上的某个点时移除该子弹。现在我正在努力使屏幕上一次可以有不止一颗子弹

我一直在看MyBringBack在YouTube上用Java小程序开发游戏的系列节目,找到了解决方案。我知道我应该将“player”作为一个单独类中的对象,这样我就可以轻松地调用它的多个实例。问题是在YouTube系列中,他在使用形状,而我在使用图像。我明白,如果我看过他这么做的话,应该不会太难,但我很难确定我在对象类中也需要哪些方法和变量

我想既然我必须为子弹做这件事,我也可以为其他物体(“玩家”、“奶牛”、“快速僵尸”、“坦克僵尸”、“普通僵尸”和“血盘”)做这件事“但是,在另一个类中,当我这样做时,原来的ZombieAttackMain类中使用的变量现在不能被ZombieAttackMain访问,而新类也不能访问ZombieAttackMain中的变量。我将发布ZombieAttackMain的原始代码,如果有人有任何建议,我们将不胜感激。谢谢大家!

编辑:在ZombieAttackMain中,我无法再访问玩家位置和玩家位置。在我创建的玩家类中,它无法访问POSITION_1_Y、POSITION_2_Y、POSITION_3_Y或POSITION_4_Y

代码:


您需要将所有这些类分开,这是正确的。无法访问变量的原因可能是您将它们设置为私有。因此,您应该使用“getter”访问它们。如果您不知道如何为类生成getter,并且您正在使用eclipse,则可以转到源-->生成getter和setter。例如,如果Bullet类具有bulletXposition,那么在创建Bullet对象时,可以从另一个类将其命名为“Bullet”,并可以调用Bullet.getBulletXPosition等等。在我看来,您应该先阅读基础知识,然后尝试制作一个游戏。

提供的关于您无法访问的变量的信息量有限。我同意他的观点,即你没有以正确的方式访问变量。 示例(如果您有一个单独的僵尸类):

然后,当您需要引用Zombies类中的X字段时,您可以这样做 在主屏幕或需要设置/获取它的任何位置:

Zombie zombie = new Zombie();   // Create a new instance of your zombie or if available                        call existing zombi(say if stored in some sort of a collection)
zombie.setX(140.13);            // To set the X coordinate
zombie.getX();                  // To retrieve the X coordinate

希望有帮助。

类的公共方法可以从该类外部调用……哪些变量是您无法访问的?这些无法访问的字段属于哪些对象?请编辑你的帖子。非常感谢你,它确实有帮助!不过为了确保,对于需要在类之间共享的任何变量,您需要为每个类创建getter和setter方法,并相应地使用它们?我是否也在主类中保留KeyListener方法?再次感谢。@Eric我强烈建议你这么做。请查看封装以了解更多信息,了解它为什么有益。我不完全确定这是否取决于您希望代码的结构。太棒了,非常感谢。我对编程还是很陌生,但到目前为止我喜欢它。
public class Zombie{         
private double x;
public void setX(double x){       // Setter
this.x = x;
}
public double getX(){             // Getter
return x;
}
}
Zombie zombie = new Zombie();   // Create a new instance of your zombie or if available                        call existing zombi(say if stored in some sort of a collection)
zombie.setX(140.13);            // To set the X coordinate
zombie.getX();                  // To retrieve the X coordinate