当前位置: 首页 > 知识库问答 >
问题:

Java OOP为什么函数看不到变量?[副本]

臧俊杰
2023-03-14

我是一个很新的编码,我一直有问题的物理计算器,我一直在做。我做这件事是为了在类项目中使用OOP。我的要点是让用户输入变量,然后它们被运到类文件上的等式中,然后最后显示结果。当我尝试编译时,它说函数getAnswer看不到它上面声明的结果。我计划对这个方程进行16次迭代,所以我首先要弄清楚为什么这一次不起作用。欢迎任何回答。

-谢谢

 import java.util.Scanner;

 public class VFD {
    public static void main( String[] args ) {
        Scanner keyboard = new Scanner(System.in);
        
        System.out.println("Welcome to Kinmatics calculator");
        System.out.println("You can find Final Velocity, Acceleration, DIsplacemnt, or Time");
        System.out.println("What variable is not included in the equation?");
        String missing = keyboard.next();
        System.out.println("What variable are you looking for?");
        String find = keyboard.next();
        
        
        if (missing.equals("Final Velocity") && find.equals("Initial Velocity")) {
        System.out.println("Please enter your available values");
        System.out.println("Acceleration = (m/s^2)");
        double a = keyboard.nextDouble();
        System.out.println("Displacement = (m)");
        double d = keyboard.nextDouble();
        System.out.println("Time = (s)");
        double t = keyboard.nextDouble();
        VelocityFinder qviadt = new VelocityFinder();
        qviadt.qviadt(a, d, t); 
        System.out.println(qviadt.getAnswer());
        }
    }
 }

这是类文件

public class VelocityFinder {
    
    public void qviadt( double a, double d, double t  ) {
        double result = d/(.5*a*(t*t))/t;
        double answer = result;
    }
    public String getAnswer () {
        return answer;
    }
}

共有2个答案

朱俭
2023-03-14

方法qviadtgetAnswer在同一个类中,但它们不是同一个方法。GetAnswer试图返回不存在的内容。若要解决此问题,请删除getAnswer并将qviadt更改为:

public void qviadt( double a, double d, double t  ) {
    double result = d/(.5*a*(t*t))/t;
    double answer = result;
    return answer;
}

并直接存储它的返回值。这被称为作用域问题,您应该研究什么是作用域以及如何使用它。

史弘致
2023-03-14
    public class VelocityFinder {
    private double answer;

    
    public void qviadt( double a, double d, double t  ) {
        double result = d/(.5*a*(t*t))/t;
        double answer = result;
    }
    public String getAnswer () {
        return String.valueOf(answer);
    }
}
 类似资料:
  • 我有一个组件,我将一些数据放入变量中,以便在另一个函数中读取它。当我在构造函数中打印这个变量并在控制台上打印它时,我可以看到它,但是当我在另一个函数中执行同样的操作时,我没有定义它。我已经尝试将它声明为私有和公共,并得到相同的结果。 如何声明此变量以查看另一个方法中的变量? 这是我的组件: 编辑: 如果我把一个静态常数放在我的函数上,我可以得到数据: 但如果我这样做: 我得到了一个错误: 属性'm

  • 我有一个简单的脚本,每2秒打印一次hello。 我有一个超简单的docker文件运行这个脚本。 首先我建立docker映像: 现在,我使用选项运行它,它按预期工作。 但是当我以分离模式运行它,然后尝试查看日志时,我什么也看不到。

  • 我在Eclipse中得到了一个警告,代码如下: 代码: 警告: 这个警告是什么,'资源泄露‘是什么意思? 谢谢.

  • 使用指南 - 疑难问题 - 数据缺失或无数据问题 - 为什么看不到事件跟踪或自定义变量等数据 这些高级统计功能需要新增代码,请检查代码是否部署正确。 a. 事件跟踪请参考:https://www.wenjiangs.com/doc/nqW2asFX b. 自定义变量请参考:http://tongji.baidu.com/open/api/more?p=guide_setCustomVar 代码添加

  • 正如您在这两个函数中看到的,我没有使用任何变量关键字来定义仍在执行的变量。 发生了什么? 或者在JS中使用变量关键字只是可选的?

  • 这里,当我返回一个箭头函数insted时,它不起作用: 我知道箭头函数是松散的,这就是为什么我在这里尝试在括号中返回它。没有他们也不行。