gpt4 book ai didi

Java调用带有对象参数的方法到main方法

转载 作者:行者123 更新时间:2023-12-02 12:57:28 24 4
gpt4 key购买 nike

play.java: https://pastebin.com/4bzfE76z
values.java: https://pastebin.com/6mnUzKyA
player.java: https://pastebin.com/qiFymMF6
stats.java: https://pastebin.com/P24AUpXV

我在 play.java 中有一个名为 start 的方法,带有对象参数。这些对象最初是在 sValues 方法内的 values.java 中声明的。我想调用 play.java 的 ma​​in 方法 的方法 start ,但我不知道在参数中写什么打电话。

values.java 内部:

    player user = new player ();
user.setP_Name (username);
user.setP_ATK (atk);
user.setP_HP (hp);

stats[] enemies = new stats [3];
enemies [1] = new stats ();
enemies [1] = gob;
enemies [1].getName ();
enemies [1].getHP ();
enemies [1].getATK ();
enemies [1].getMANA ();
enemies [2] = new stats ();
enemies [2] = orc;
enemies [2].getName ();
enemies [2].getHP ();
enemies [2].getATK ();
enemies [2].getMANA ();

play.java 中,我使用如下对象:

System.out.println ("Hitpoints[HP]: " + enemies [i].getHP ());

它效果很好,因为我将这两个对象包含到方法的参数中:

public static void start (player user, stats[] enemies)

但是,每当我想在 ma​​in 方法 中调用 start 来让它执行我想要的操作时,它都会给我错误。这就是我一直试图调用它的方式:

public static void main (String[] args)
{ //main method
start(player, stats);
} //main method

我做错了什么吗?任何帮助表示赞赏。如果需要,我很乐意添加更多信息。编码新手,不确定需要提供哪些具体细节。

我的错误:

{ //main method
player player = new player();
start(player, stats);
} //main method

错误:开始(玩家,统计数据);找不到符号。符号:变量统计。地点:类(class)游戏。

使用 netbeans 时,当我将鼠标悬停在“stats”上时,会出现此错误。

最佳答案

main方法是程序的入口点。您还没有实例化任何其他东西,因此没有对象可以传递到您的 start 方法中。

您可能需要向我们提供更多代码,但您可能需要首先尝试类似的操作 - 我这对您的代码做出了很多假设

public static void main (String[] args)
{ //main method
Player player = new Player(); // This is an instance of your Player class
// and initialize your stats array.
Values v = new Values();
start(player, stats);
} //main method

同时提供您遇到的错误也可能有所帮助。

编辑

检查您的代码后,我发现了一些问题。在您的 Values 类中,您有方法sValues,它按照您所说的方式创建敌人,但是您仅在该方法中创建了stats[]具有该方法的范围,因此当该方法完成时,您创建的敌人现在已经消失了。

您还有很多静态引用 - 这是不好的做法,您需要尽可能删除。为此,您可以更改类似的内容

 Values.sValues();

 Values v = new Values(); // in the constructor call what you need to
v.sValues();

您需要考虑在哪里存储敌人的统计数据数组。您可以将其移至 Values 类的顶部并为其添加 getter,然后您的代码可能如下所示

Values.java

public class values {
public static String clear = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
public static String username;
public static int atk = 1;
public static int hp = 10;

private stats[] enemies;

// .. your other code
public void sValues () // this method should not be static
{ //sValue method
// .. other code
enemies = new stats [3]; // Remove the declaration at the start of this line
// .. other code
}

public stats[] getEnemies()
{
return enemies;
}

Play.java

public static void main (String[] args)
{
// Create a player
player player = new player("Steve", 10, 10);
// Initialise your values
Values v = new Values();
// create the enemies (this could be done in your values constructor)
v.sValues();
// Start with these enemies
start(player, v.getEnemies());
}

关于Java调用带有对象参数的方法到main方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44380320/

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