所以我的问题是我不能在我的参数中使用我的全局变量(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/