gpt4 book ai didi

java - Java 中的 Getter 错误

转载 作者:行者123 更新时间:2023-11-29 09:31:10 25 4
gpt4 key购买 nike

我今年夏天开始使用 java,并在空闲时间设计一个小游戏。我现在遇到的问题是 setter/getter 。在 Player 类中,我有一个整数“speed”的 getter。

代码如下:

public int getSpeed(){
return this.speed;
}

这个整数 "speed"在构造函数中设置:

public Player(int x, int y, String n, BufferedImage s, int spd) {
super(x, y);
this.name = n;
this.sprite = s;
spd = this.speed;
this.l_x = x;
this.l_y = y;
}

当我尝试在移动代码中使用“speed”变量时:

if (w) {
p_y -= player.getSpeed();
}

我在运行时遇到这个错误(谢谢 Martijn Courteaux):

Exception in thread "Thread-3" java.lang.NullPointerException
at main.gameMain.update(gameMain.java:81)

第 81 行是移动代码所在的行。

如果我能得到任何帮助,我将不胜感激,因为我可以通过对所有内容使用单独的变量来使所有内容“正常工作”,但如果我能知道为什么我的 getter 不起作用,它会更容易和更清晰 10 倍。

提前致谢!

编辑:我改变了

spd = this.speed;

this.speed = spd;

但是,我仍然收到空指针异常错误。事实上,我尝试使用的任何变量都会引发相同的错误。

任何人都可以看到任何重大错误吗?并感谢迄今为止提供帮助的所有人!非常感谢!

包主;

导入java.awt.image.BufferedImage;

公共(public)类 Player 扩展 Character {

private String name;
private BufferedImage sprite;
private int speed, l_x, l_y;

public Player(int x, int y, String n, BufferedImage s, int spd) {
super(x, y);
this.name = n;
this.sprite = s;
speed = spd;
this.l_x = x;
this.l_y = y;
}

public int getSpeed(){
return this.speed;
}

public void setSpeed(int i){
this.speed = i;
}

public int getOriginalX(){
return super.o_loc_x;
}

public int getOringinalY(){
return super.o_loc_y;
}

public int getCurrentY(){
return this.l_y;
}

public int getCurrentX(){
return this.l_x;
}

public void setCurrentY(int i){
i = this.l_y;
}

public void setCurrentX(int i){
i = this.l_x;
}

public void moveUp(){
this.l_y -= speed;
}

public void moveDown(){
this.l_y += speed;
}

public void moveLeft(){
this.l_x -= speed;
}

public void moveRight(){
this.l_x += speed;
}

public void setName(String input){
this.name = input;
}

public String getName(){
return this.name;
}

public void setSprite(BufferedImage m){
this.sprite = m;
}

public BufferedImage getSprite(){
return this.sprite;
}

编辑:我真是个白痴。当我声明一个新的 Player 实例时,我把

Player player =...

代替:

player = ....

最佳答案

改变:

spd = this.speed;

与:

this.speed = spd;

关于java - Java 中的 Getter 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8597688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com