java - 如何通过 String 方法将计算从辅助类导入到主类?

标签 java

我是java新手...我只想使用辅助类来计算汽车修理店的账单...取决于零件成本、工作时间和20%的增值税。我们认为每小时的费用为 20 美元。账单将在辅助类别内计算,程序将要求用户输入零件成本和工作时间。请通知我

package Exs2Lecture7;

import javax.swing.JOptionPane;

public class CarRepairApp {

    private static String partsStr; 
    private static String hoursStr;
    private static double parts = Double.parseDouble(partsStr);
    private static double hours = Double.parseDouble(hoursStr);
    private static double bill;
    private static CarRepair myRepair;

    public static void main(String[] args) 
    {
        CarRepair myRepair = new CarRepair(parts,hours);

        partsStr = read("Please enter the cost for the parts: ");
        hoursStr = read("Please enter the working hours: ");
    }

    public static String read (String prompt)
    {
        return (JOptionPane.showInputDialog(prompt));
    }
    public void display(String s)
    {
        this.bill = myRepair.calculateBill();
        JOptionPane.showMessageDialog(null, "The cost for the bill will be " + bill);
    }

}

辅助类将是

package Exs2Lecture7;

import javax.swing.*;

public class CarRepair 

{

    private double parts;
    private double hours;
    private static double HOURS_COST = 20;
    private static double VAT = 20;


    public CarRepair(double p, double h)
    {
        parts = p;
        hours = h;
    }

    public double calculateBill()
    {
        /*double bill = (parts + (hours * HOURS_COST)) + 
                ((parts + (hours * HOURS_COST)) * VAT/100);*/
        return ((this.parts + (this.hours * HOURS_COST)) + 
                ((this.parts + (this.hours * HOURS_COST)) * VAT/100));


    }
}

最佳答案

您需要解析字符串并将其转换为 double 。

double partsDouble= Double.parseDouble(partsStr);
double hoursDouble= Double.parseDouble(hoursStr);

然后创建 CarRepair 的实例,例如

CarRepair carRepair = new CarRepair(partsDouble,hoursDouble);

然后你可以调用calculateBill()方法

carRepair.calculateBill();

更新

@Blip 正确指出,无需创建另一个引用。 像这样更改你的 main

public static void main(String[] args) 
    {
        partsStr = read("Please enter the cost for the parts: ");
        hoursStr = read("Please enter the working hours: ");
        double partsDouble= Double.parseDouble(partsStr);
        double hoursDouble= Double.parseDouble(hoursStr);
        myRepair = new CarRepair(partsDouble,hoursDouble);
        myRepair.display();//no need to pass anything
    }

关于java - 如何通过 String 方法将计算从辅助类导入到主类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33962720/

相关文章:

java - retrofit 动态响应体

java - 检查文件/目录是否存在而不创建新的 File 对象

java - 列出进程(如果存在任何进程)Java

java - 如果不用于 DDL 生成,Hibernate @JoinColumn(nullable = false) 是否多余?

java - 使用 Apache POI 创建新工作表会删除所有现有工作表

java - 按下按钮后多个 Activity 应用程序崩溃

java - 如何为每个地址生成唯一编号?

java - 微调器上 findViewById 的 Android NullPointerException

java - 如何通过 RMI 传递输入流

java - 亚马逊广告 API 导致我的应用崩溃?