我有一点问题。
我有一个3类看起来像这样:
public class Gun{
public void Shot(){
// shoot code
}
public void RenderGun()
{
// render code
}
// more methods
}
public class GameManager
{
Gun gun;
public GameManager()
{
gun = new Gun();
}
// methods using GunClass methods.
}
public class HudScreen
{
Gun gun;
public HudScreen()
{
gun = new Gun();
}
public void GunShotButton()
{
gun.Shoot();
}
}
问题是我有两个Gun对象,我想拥有一个,但是在HudScreen和GameManager类中都使用它。
因此,如果我在GameManager中创建了一个新的Gun对象,如何从HudScreen类中“调用”该对象?
谢谢,MM。
最佳答案
GameManager构造函数
public GameManager(Gun gun){
this.gun = gun;
}
HudScreen构造函数
public HudScreen(Gun gun){
this.gun = gun;
}
在创建Gun对象的主要方法中,可以将其传递给GameManager和HudScreen的构造函数
public static void main() {
Gun gun = new Gun();
HudScreen hudScreen = new HudScreen(gun);
GameManager gameManager = new GameManager(gun)
}
如果您不想以相同的方法创建GameManager和HudScreen,但仍想使用相同的Gun对象,则可以采用这种方式
1.初始化Gun对象
2.在GameManager和Hudscreen上,您可以将其传递给构造函数,也可以将其直接传递给这些类中的方法。
例如假设您想让GameManager构造函数接收新创建的Gun,并将同一把Gun传递给Hudscreen.GunShotButton。希望您对此有所了解-
public class Gun{
public void Shot(){
// shoot code
}
public void RenderGun()
{
// render code
}
// more methods
}
public class GameManager
{
Gun gun;
public GameManager(Gun gun)
{
this.gun =gun;
}
// methods using GunClass methods.
}
public class HudScreen
{
public HudScreen()
{
}
public void GunShotButton(Gun gun)
{
gun.Shoot();
}
}
关于java - 调用在另一个类中创建的对象的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43112259/