java - 我收到了关于计算每小时英里数的作业,但我的运行程序似乎无法找到我的时间变量

标签 java

import java.util.Scanner;
import static java.lang.System.*;
import static java.lang.Math.*;

public class MPHRunner
{
    public static void main( String[] args )
    {
        Scanner keyboard = new Scanner(in);

        out.print("Enter the distance :: ");
        int dist = keyboard.nextInt();

        out.print("Enter the hours :: ");
        int hrs = keyboard.nextInt();

        out.print("Enter the minutes :: ");
        int mins = keyboard.nextInt();

        MilesPerHour test = new MilesPerHour(dist, hrs, mins,time);
        test.calcMPH(dist,time);
        test.print();
    }
}

当我尝试编译它时,它告诉我它无法找到变量time。它应该从其他类中找到,包括在下面......

import java.util.Scanner;
import static java.lang.System.*;
import static java.lang.Math.*;

public class MilesPerHour
{
    public int distance, hours, minutes;
    public double mph, time;

    public MilesPerHour()
    {
        setNums(0,0,0,0);
        mph=0.0;
    }

    public MilesPerHour(int dist, int hrs, int mins)
    {
        Scanner keyboard = new Scanner(System.in);
        out.println("enter distance");
        out.println("enter hours");
        out.println("enter minutes");
    }

    public void setNums(int dist, int hrs, int mins, double time)
    {
        distance = dist;
        hours = hrs;
        minutes = mins;
        time = ((hrs*60)+mins)/60;
    }

    public void calcMPH(int dist, double time)
    {
        mph = dist/time;
    }

    public void print(int mph, int dist, double time)
    {
        System.out.println("at "+mph+"MPH, you can go "+dist+" miles in "+time+"hours.");
    }
}

如果您能提供任何帮助,我们将不胜感激。

最佳答案

Scanner keyboard = new Scanner(in);

out.print("Enter the distance :: ");
int dist = keyboard.nextInt();

out.print("Enter the hours :: ");
int hrs = keyboard.nextInt();

out.print("Enter the minutes :: ");
int mins = keyboard.nextInt();

对象中发生的事情并不重要。在这里,您声明并定义 disthrsmins,然后在下一行中:

MilesPerHour test = new MilesPerHour(dist, hrs, mins,time);

这不会编译,因为 time 尚未声明。

编辑

经过仔细检查,我注意到时间是根据其他字段计算的。在这种情况下,您不需要在参数中指定它,因为您不需要传入它。更改

public void setNums(int dist, int hrs, int mins, double time)

public void setNums(int dist, int hrs, int mins)

并在调用 setNums 方法时将其从参数列表中删除。

注意:如果您的老师无法诊断这里的编译问题,那么我肯定会将其报告给您的教育机构。这是新手程序员应该能够发现的。

关于java - 我收到了关于计算每小时英里数的作业,但我的运行程序似乎无法找到我的时间变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26427312/

相关文章:

java - 获取 "java: incompatible types: java.lang.Object cannot be converted to org.testng.ISuiteResult"

Java 如何制作包启动器,以打开项目中的包

java - 如何拆分Spring条件配置?

java - 使用二维数组和 JfreeChart 制作散点图

java - 有人可以解释二叉搜索树中的递归delete()并帮我转换它吗

java - jfreechart自定义饼图显示绝对值和百分比

java - 尽管 saveOrUpdate 失败,但版本已增加

java - 检索 ArrayListMultimap 键

java - 参数中的Java类型提升

java - android中USB多播的问题