java - 如何在函数参数中使用全局变量?

标签 java function double boolean-expression

所以我的问题是我不能在我的参数中使用我的全局变量(a,b,c)。我需要能够在 boolean 函数和 double 函数中使用它们。我究竟做错了什么?我该如何解决这个问题?

 public class triareamain extends javax.swing.JFrame {

    double a, b, c; 

public void DisplayError() {
        side1input.setText("Error");
        side2input.setText("Type");
        side3input.setText("+ Integers");
    }
    public double areaCal(double a, double b, double c) {
        double s = (a + b + c) / 2;
        double area = Math.sqrt(s * (s - a) * (s - b) * (s - c));
        return area;
    }

    public static boolean isValid(double a, double b, double c) {
        if (a > b + c || b > a + c || c > a + b) {
            return true;
        } else {
            return false;
        }
    }

 private void calculatebuttonActionPerformed(java.awt.event.ActionEvent evt) {                                                
        try {
            a = Double.valueOf(side1input.getText());
            b = Double.valueOf(side2input.getText());
            c = Double.valueOf(side3input.getText());

            boolean area = isValid();

            if (area == false) {
                double finalarea = areaCal();
            } else {
                DisplayError();
            }

        } catch (NumberFormatException e) {
            side1input.setText("Error");
            side2input.setText("Type");
            side3input.setText("+ Integers");
        }

最佳答案

a , b ,和c不是全局变量。 Java没有这个概念。它们是 triareamain 类的字段 .

但是,您还创建了同名的参数,因此这些名称​​遮蔽了字段。

如果您想要areaCal()直接使用字段的方法,去掉参数:

public double areaCal() {

如果您希望该方法使用参数,则在调用中传递值:

double finalarea = areaCal(a, b, c);

如果您保留参数,我强烈建议您重命名字段或参数。变量名称的隐藏非常会让程序员感到困惑,并且很可能会导致错误。

关于java - 如何在函数参数中使用全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61131827/

相关文章:

java - 将时间值为 "0:00"的字符串转换为十进制/ double 值?

java - 为什么 java 无法播放我的 .wav 文件?

java - 使用 HttpClientBuilder 时出现“ClassNotFoundException

function - 闭包:预期的 u32 找到类型参数

javascript - 将键值(对象)对添加到数组中的所有对象

MySQL 保存 float 错误

fortran - Fortran 中的实数同时使用科学记数法和下划线类型说明符

Java 相当于 C 中的 fscanf

java - 对象引用返回 null Java

javascript - 如果我尝试访问一个未定义或继承的属性,它返回空字符串。为什么会有这样的行为?