从另一个子类访问子方法

问题描述 投票:0回答:1
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初学者尝试制作游戏。当我尝试获取Fort的class方法中使用的x和y值时出现错误。那么可以从另一个子类中调用方法吗?

这是我得到的错误:

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)
java inheritance libgdx hierarchy
1个回答
0
投票

这是因为您正在类中创建类。

  1. 将游戏,卡车和堡垒类分为不同的类。
  2. 在Fort Class中,创建卡车的实例:私人卡车
  3. 在Fort构造函数中,将卡车作为参数传递,并将卡车的x和y设置为参数的x和y。
  4. 现在您可以在Fort内部访问卡车的getX()和getY()方法。
  5. 在Game中创建Fort类的实例。现在,您所有的课程都已连接。

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

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.