gpt4 book ai didi

java - 文件名是一个变量

转载 作者:太空宇宙 更新时间:2023-11-04 13:59:47 24 4
gpt4 key购买 nike

我正在尝试将变量作为文件名。我想要一个通用命令,当子类继承该命令时,可以将文件名设置为变量。

代码编译起来很有趣,但是当我运行它并按 d 或 a 键移动头像时,我会看到一个弹出窗口,显示找不到文件:avatarRight

编辑:如果我从参数列表中删除引号并初始化上面的文件名,那么它就会运行,但我希望能够初始化子类中的变量,以便多个子类可以有不同的图像

父类(super class)方法:

/**
* Sets up the movement keys and facing for the Object
*/
public void movement()
{
String avatarRight = "Alien.png";
String avatarLeft = "Alien1.png";

if (atWorldEdge() == false)
{
if (Greenfoot.isKeyDown("w"))
{
setLocation(getX(), getY()-1);
}
if (Greenfoot.isKeyDown("d"))
{
setImage(avatarRight);
setLocation(getX()+1, getY());
}
if (Greenfoot.isKeyDown("s"))
{
setLocation(getX(), getY()+1);
}
if (Greenfoot.isKeyDown("a"))
{
setImage(avatarLeft);
setLocation(getX()-1, getY());
}
}
else
{
}
}

子类:

public class Alien extends Living
{
private String avatarRight = "Alien.png";
private String avatarLeft = "Alien1.png";
/**
* Act - do whatever the Alien wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
movement();
}
}

最佳答案

不要在方法 movement 中声明图像变量,而是在 class 中声明您想要使用的图像变量,并将该变量传递给您想要使用它的方法。

所以不要这样做:

public void movement()
{
String avatarRight = "Alien.png";
String avatarLeft = "Alien1.png";
...

还有这个:

public class Alien extends Living
{
private String avatarRight = "Alien.png";
private String avatarLeft = "Alien1.png";
/**
* Act - do whatever the Alien wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
movement();
}
}

这样做:

public void movement(String avatarLeft, String avatarRight)
{
...

还有这个:

public class Alien extends Living
{
private String avatarRight = "Alien.png";
private String avatarLeft = "Alien1.png";
/**
* Act - do whatever the Alien wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
movement(avatarLeft, avatarRight);
}
}

这将允许您将不同的图像从不同的头像类传递到移动方法。

关于java - 文件名是一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29424086/

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