Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在函数参数中使用全局变量?_Java_Function_Double_Boolean Expression - Fatal编程技术网

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

Java 如何在函数参数中使用全局变量?,java,function,double,boolean-expression,Java,Function,Double,Boolean Expression,所以我的问题是我不能在参数中使用全局变量(a,b,c)。我需要能够在布尔函数和双精度函数中使用它们。我做错了什么?我怎样才能解决这个问题 public class triareamain extends javax.swing.JFrame { double a, b, c; public void DisplayError() { side1input.setText("Error"); side2input.setText("Type");

所以我的问题是我不能在参数中使用全局变量(a,b,c)。我需要能够在布尔函数和双精度函数中使用它们。我做错了什么?我怎样才能解决这个问题

 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没有这个概念。它们是类
trieamain
的字段

但是,您也创建了相同名称的参数,因此这些名称会隐藏字段

如果希望
areaCal()
方法直接使用字段,请删除以下参数:

public double areaCal() {
如果希望方法使用参数,请在调用中传递值:

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

如果保留参数,我强烈建议您重命名字段或参数。变量名的阴影对程序员来说是非常混乱的,并且很可能是bug的原因。

Java对Javascript就像痛苦对绘画一样,火腿对仓鼠一样。他们完全不同。强烈建议有抱负的程序员尝试学习他们试图编写代码的语言的名称。当你发布一个问题时,请适当地标记它-这可以让那些了解你需要帮助的语言的人看到你的问题。当然,对不起,我还是一个初学者,我不知道它们是不同的。谢谢,我会记住这一点,并会立即更改它们谢谢你的帮助!