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

问题描述:

我正在为学校项目创建一个自动售货机模拟,并且我一直无法通过这些第一对夫妇的障碍。该项目的一个要求是有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;      
     } 
    } 
    } 
} 
+0

杉木如果要编译它,试着用'0.05','0.10'和'0.25'分别替换'.05','.10','.25'等。 – 2014-10-08 04:32:58

要初始化与当前存储在尼克斯,宿舍值学分等

它没有得到您每次请求它的价值时更新

你需要做的是增加一个功能:

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

和打印getCredits(),而不是信贷