Java 从一个单独的方法返回一个变量

标签 java

我已经创建了一个工作更改计算器,它在驱动程序类“CoinsCalculateTester”的基础上工作,从另一个恰当命名为“CoinsCalculate”的调用计算和输出方法。这是 2 个类。

CoinsCalculateTester 类

import chn.util.*;

public class CoinsCalculateTester
{
    public static void main(String[] args)
    {
        int change;
        ConsoleIO keyboard = new ConsoleIO();
        System.out.print("Please enter amount of change => $0.");
        change = keyboard.readInt();
        CoinsCalculate printOut = new CoinsCalculate(change);
        printOut.calculate();
        printOut.printChange();
    }
}

CoinsCalculate 类

public class CoinsCalculate
{

//Instance variables
private int change;
public int q, d, n, p; //Quarters, Dimes, Nickels, and Pennies, Respectively.
public int c; //Declaring var c for change in constructor

//Constructor
public CoinsCalculate (int change)
{
    c = change;
}

public void calculate()
{
    change = change * 100;

    int q = c / 25;
    c = c % 25;

    int d = c / 10;
    c = c % 10;

    int n = c / 5;
    c = c % 5;

    int p = c / 1;
    c = c % 1;



}

public void printChange()
{
    System.out.println("Quarter(s): " +q);
    System.out.println("Nickel(s): " +d);
    System.out.println("Dime(s): " +n);
    System.out.println("Penny(s): " +p);
}
}

当运行测试器时,这是输出:

Please enter amount of change => $0.84
Quarter(s): 0
Nickel(s): 0
Dime(s): 0
Penny(s): 0

我认为我遇到的问题是,一旦完成计算方法,变量就会回到它们的初始值,所以当在 printChange 方法中返回它们时,我得到的所有变量都是 0。我知道我可以将 SOP 行放在一个方法中并避免所有这些麻烦,但我希望它们在不同的方法中。所以我的问题是,我该怎么做?

最佳答案

不要在计算方法中重新定义那些变量,否则它们会隐藏那些同名的类级变量:

q = c / 25;
c = c % 25;

d = c / 10;
c = c % 10;

n = c / 5;
c = c % 5;

p = c / 1;
c = c % 1;

关于Java 从一个单独的方法返回一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25881809/

相关文章:

java - 如何在redhat linux中将JDK从Oracle升级到Zulu

java - 如何查找 testng.xml 文件中正在执行的测试数量

java - Maven/Spring boot项目-如何跳过@SpringBootTest

java - 在媒体播放器中停止并播放 mp3

java - ADB PULL 命令

java - 用户名的正则表达式会增加 CPU 消耗

java - 为什么 wait 和 notification 函数在同一个类锁上无法正常工作

java - Spring 安全 : Error during artifact deployment caused by <filter> and <filter-mapping> sections in web. xml

java - JOptionPane 处理 ok、cancel 和 x 按钮

Java 8 - 向需要泛型类型的方法提供原始类型参数会导致其返回类型被删除