繁体   English   中英

从另一个子类访问子方法

[英]Access a child method from another child class

public class Game {
   public class Truck {
      private float x,y;
      public Truck() {}
      public float getX() {return this.x;}
      public float getY() {return this.y;}
   }
   public class Fort {
      public Fort() {
        float x = truck.getX();
        float y = truck.getY();
      }
   }

   public Truck truck = new Truck();
   public Fort fort = new Fort();
}

试图制作游戏的初级 Java 程序员。 当我尝试获取卡车的 x 和 y 值以在 Fort 的类方法中使用时出错。 那么是否可以从另一个子类调用方法?

这是我得到的错误:

Exception in thread "LWJGL Application" java.lang.NullPointerException
    at com.kroy.game.ETFortress.getTruckDistance(ETFortress.java:178)
    at com.kroy.game.ETFortress.<init>(ETFortress.java:60)
    at com.kroy.game.KroyGame.create(KroyGame.java:45)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:151)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:128)

那是因为您在类中创建类。

  1. 将 Game、Truck 和 Fort 类分成不同的类。
  2. 在 Fort Class 中,创建一个 Truck 的实例:private Truck truck;
  3. 在 Fort 构造函数中,将卡车作为参数传递,并将卡车的 x 和 y 设置为参数的。
  4. 现在您可以从 Fort 访问 Truck 的 getX() 和 getY() 方法。
  5. 在 Game 中创建 Fort 类的实例。 现在您的所有课程都已连接。

如果您真的是初学者,请在尝试解决游戏之前先学习基础知识。 您最终会到达那里,但首先要弄清楚所有代码片段如何协同工作。 然后你可以做任何事情。

祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM