簡體   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