如何使一个方法的变量成为另一个Java方法的变量?

如何使一个方法的变量成为另一个Java方法的变量?,java,Java,在这里,我试图将Player方法中的“cash”变量包含在我的wagerBet()方法的一个等式中。目前Eclipse告诉我变量“cash”不能“静态引用非静态字段cash”。我试图寻找关于这个问题意味着什么的解释,但我得到的解释使用了更多的编程术语,我不明白我是这方面的新手 class Player { private ArrayList<Card>hand; private double cash, bet; public Player(double t

在这里,我试图将Player方法中的“cash”变量包含在我的wagerBet()方法的一个等式中。目前Eclipse告诉我变量“cash”不能“静态引用非静态字段cash”。我试图寻找关于这个问题意味着什么的解释,但我得到的解释使用了更多的编程术语,我不明白我是这方面的新手

class Player {
    private ArrayList<Card>hand;
    private double cash, bet;

    public Player(double theCash)
    {
        cash = theCash; //'cash' variable here
        hand = new ArrayList<Card>();
    }

    public static double wagerBet()
    {
        Scanner in = new Scanner(System.in);
        System.out.print("Wager a bet: "); 
        double bet = in.nextDouble();
        cash = cash - bet; // needs to be transferred here
        System.out.println("You wagered " + bet + ". " + "Now you have " + cash + " cash left.");
        return bet;
    }

    public void rewardBet(double bet)
    {
        cash = cash + (bet * 2); //cash and bet variable needs to be transferred here as well
        System.out.println("You now have " + cash + "cash.");
    }
职业玩家{
私人ArrayListhand;
私人双现金、押注;
公共玩家(双倍现金)
{
现金=现金;//此处的“现金”变量
hand=newarraylist();
}
公共静态双下注()
{
扫描仪输入=新扫描仪(系统输入);
系统输出打印(“下注:”);
双下注=in.nextDouble();
cash=cash-bet;//需要在这里转账
System.out.println(“您下注了”+bet+“+”现在您有了“+cash+”cash left.”);
回注;
}
公开无效奖励赌注(双倍赌注)
{
cash=cash+(bet*2);//cash和bet变量也需要在此处传输
System.out.println(“您现在有”+现金+“现金”);
}
有什么建议吗?

public static double wagerBet()
消除静电

public static double wagerBet()
消除静电

public static double wagerBet()
消除静电

public static double wagerBet()

只有一个真正的问题。要理解什么是
static


基本方法是,除非你足够好,否则根本不要使用
static
。在所有情况下都删除它,而不是“main”(你必须将它保留在那里)。

只有一个真正的问题。要理解
static
是什么


基本方法是,除非你足够好,否则根本不要使用
static
。在所有情况下都删除它,而不是“main”(你必须将它保留在那里)。

只有一个真正的问题。要理解
static
是什么


基本方法是,除非你足够好,否则根本不要使用
static
。在所有情况下都删除它,而不是“main”(你必须将它保留在那里)。

只有一个真正的问题。要理解
static
是什么


基本方法是,除非你足够好,否则根本不要使用
static
.

变量
cash
不属于任何方法。它是该类的实例成员。您无法从静态方法访问它。请将该方法设置为非静态,或将“cash”作为参数传递给它(如果您只需要读取其值)。

变量
cash
不属于任何方法。它是f类。您不能从静态方法访问它。请将该方法设置为非静态,或将“cash”作为参数传递给它(如果您只需要在其中读取其值)。

cash
变量不属于任何方法。它是该类的实例成员。您不能从静态方法访问它。请将该方法设置为非静态,或传递“cas”如果您只需要在此处读取其值,则将其作为参数。

cash
变量不属于任何方法。它是该类的实例成员。您无法从静态方法访问它。如果您只需要在此处读取其值,请将该方法设置为非静态,或将“cash”作为参数传递给它。

您可能希望转到大致了解一些Java基础知识:

您正试图在静态方法中使用Player的属性。静态方法不是实例的一部分,因此它不知道什么是“现金”(因为它对每个Player实例都是唯一的,而不是单个变量)


将“静态”从wagerBet中删除,使其成为玩家的一种方法。这样,它对每个玩家都是唯一的,因此它将知道如何使用它所属的同一玩家的“现金”。

您可能需要学习一些Java基础知识:

您正试图在静态方法中使用Player的属性。静态方法不是实例的一部分,因此它不知道什么是“现金”(因为它对每个Player实例都是唯一的,而不是单个变量)


将“静态”从wagerBet中删除,使其成为玩家的一种方法。这样,它对每个玩家都是唯一的,因此它将知道如何使用它所属的同一玩家的“现金”。

您可能需要学习一些Java基础知识:

您正试图在静态方法中使用Player的属性。静态方法不是实例的一部分,因此它不知道什么是“现金”(因为它对每个Player实例都是唯一的,而不是单个变量)


将“静态”从wagerBet中删除,使其成为玩家的一种方法。这样,它对每个玩家都是唯一的,因此它将知道如何使用它所属的同一玩家的“现金”。

您可能需要学习一些Java基础知识:

您正试图在静态方法中使用Player的属性。静态方法不是实例的一部分,因此它不知道什么是“现金”(因为它对每个Player实例都是唯一的,而不是单个变量)


从wagerBet中移除“静态”,使其成为玩家的一种方法。这样,它对每个玩家都是独一无二的,因此它将知道如何使用“现金”它是同一个玩家的一部分。

可能重复的可能重复的可能重复的可能重复的可能重复的修复了将现金变量转移到2个方法的问题,但我的rewardBet()方法仍然没有从wagerBet()转移赌注变量方法。为了使wagerBet()接受另一个方法的输出,我是否必须更改任何有关wagerBet()的内容?您所说的“转移”是什么意思?它将其作为值返回。您只需在调用它时存储结果。这解决了将现金变量转移到2个方法的问题,但我的rewardBet()除外方法仍然不会从wagerBet()方法转移bet变量。是否需要在中更改有关wagerBet()的任何内容