希望我能說我是新的,但可惜我只是非常生鏽。我正在嘗試做幾個簡單的程序,以回到我幾年前學到的基礎知識。目前我有兩個單獨的課程:實體和遊戲。我製作了一個玩家實體對象,並且我想用不同的方法訪問它的x和y參數,最後還有不同的類。如何在java中的其他類中引用對象參數
我的第一個直覺就是使用'player.x',但不幸的是,它只能在同一個類中使用,只能使用void方法。如果我嘗試在其他地方使用,我會在嘗試引用播放器的任何參數的行上不斷收到'NullPointerException'錯誤。任何關於如何引用x和y位置而不拋出這個錯誤的建議,或者甚至僅僅知道爲什麼它只被拋出在非void方法中(理想情況下我想用它們在浮點方法中進行計算)會很大讚賞。 這是我的實體類:
public class Entity {
public float x; //x position
public float y; //y position
public Entity(float x, float y){
this.x = x;
this.y = y;
}
//entity methods
}
這是我的遊戲類:
public class Game{
public static Entity player;
public static float posX = 2f;
public static float posY = 2f;
public Game(){
player = new Entity(posX, posY);
}
public static float test(){
float newX = player.x - 2f; //I would get the error here for example
return newX;
}
//Game methods
}
謝謝!
編輯
改變了遊戲類的建議,仍然得到同樣的錯誤。
public class Game {
public Entity player;
public float posX = 2f;
public float posY = 2f;
public float y = test();
public Game() {
player = new Entity(posX, posY);
}
public float test() {
float newX = player.x - 2f; //I would get the error here for example
return newX;
}
public void print() {
System.out.println(y);
}
public static void main(String[] args) {
Game game = new Game();
game.print();
}
}
你會得到什麼錯誤? –
java.lang.NullPointerException – user6154145
沒有理由在void或non-void方法中不應出現錯誤。 void的唯一變化是不必返回一些東西,所以也許你錯過了(或者沒有刪除)return語句,但這是一個無關緊要的問題。 –