Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 变量不会增加,从静态方法调用非静态方法_Java_Variables_Static_Non Static - Fatal编程技术网

Java 变量不会增加,从静态方法调用非静态方法

Java 变量不会增加,从静态方法调用非静态方法,java,variables,static,non-static,Java,Variables,Static,Non Static,我正在为一个学校项目创建一个自动售货机模拟系统,我一直很难通过这些最初的障碍。项目的一个要求是有5个全局变量,我假设这意味着在任何方法之外但在类中定义的变量。起初,我无法调用它们中的任何一个,直到我了解了“静态”和“对象”,我通过创建调用这些变量的实例方法来解决这个问题,并在我的主静态方法中创建这些实例方法的对象。但问题是,我需要这些变量递增,并且它们不会从0改变!!我试图让用户“插入硬币”到机器,但没有发生什么,当我尝试它。无论如何,这是代码,它还没有接近完成,但一点帮助和澄清我做错了将不胜感

我正在为一个学校项目创建一个自动售货机模拟系统,我一直很难通过这些最初的障碍。项目的一个要求是有5个全局变量,我假设这意味着在任何方法之外但在类中定义的变量。起初,我无法调用它们中的任何一个,直到我了解了“静态”和“对象”,我通过创建调用这些变量的实例方法来解决这个问题,并在我的主静态方法中创建这些实例方法的对象。但问题是,我需要这些变量递增,并且它们不会从0改变!!我试图让用户“插入硬币”到机器,但没有发生什么,当我尝试它。无论如何,这是代码,它还没有接近完成,但一点帮助和澄清我做错了将不胜感激。谢谢大家!

package project3;

import java.util.Scanner;

public class Project3 {
       double nickels = 0.00;
       double quarters = 0.00;
       double dimes = 0.00;
       double dollars = 0.00;
       double credits = nickels + quarters + dimes + dollars;
public static void main(String[] args) {
    Project3 menu = new Project3();
    menu.menu();
}
public void menu () {
        int counter = 0;
        Scanner input = new Scanner(System.in);
    while (counter >=0 && counter <=4){
        System.out.print("Credit: "+credits +"\n0. Insert Money \n1. Twix: 50¢ \n2. Marathon Bar: $1.00 \n3. Snickers: 75¢ \n4. Return Change \nSelection: ");
        counter = input.nextInt();
        switch (counter) {
            case 0: getMoney();
                break;
            case 1: 
                break;
            case 2: 
                break;
            case 3: 
                break;
            case 4: 
                break;               
        }
    }
}
public void getMoney(){ 
    int counter = 0;
    Scanner input = new Scanner(System.in);
    while (counter >=0 && counter <=4){            
        System.out.print("Credit : " +credits+"\n1. Insert Nickel \n2. Insert Dime \n3. Insert Quarter \n4. Insert Dollar \n5. Return to menu \nSelection: ");
        counter = input.nextInt();
        switch (counter) {
            case 1: nickels += .05;
                break;
            case 2: dimes += .10;
                break;
            case 3: quarters += .25;
                break;
            case 4: dollars += 1.00;      
                break;                    
      }  
    }
  }   
}
package项目3;
导入java.util.Scanner;
公共类项目3{
双镍币=0.00;
双四分之一=0.00;
双一角硬币=0.00;
双倍美元=0.00;
双倍信用=五分镍币+四分之一硬币+一角硬币+美元;
公共静态void main(字符串[]args){
Project3菜单=新建Project3();
menu.menu();
}
公共无效菜单(){
int计数器=0;
扫描仪输入=新扫描仪(System.in);

当(计数器>=0&&counter=0&&counter时,您正在使用当前存储在硬币、四分之一硬币等中的值初始化积分

它不会在您每次请求它的值时都得到更新

您需要做的是添加一个函数:

private double getCredits(){
    return nickels + quarters + dimes + dollars;
}

并打印getCredits(),而不是credits

您正在使用当前存储在硬币、硬币等中的值初始化credits

它不会在您每次请求它的值时都得到更新

您需要做的是添加一个函数:

private double getCredits(){
    return nickels + quarters + dimes + dollars;
}

并打印getCredits()首先,为了让它编译,试着用
0.05
0.10
.25
等替换
0.05
0.10
0.25
。首先,为了让它编译,试着用
0.05
.10
0.25
等替换
.05
.10和
0.25。