Java 如何在函数参数中使用全局变量?
所以我的问题是我不能在参数中使用全局变量(a,b,c)。我需要能够在布尔函数和双精度函数中使用它们。我做错了什么?我怎样才能解决这个问题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");
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就像痛苦对绘画一样,火腿对仓鼠一样。他们完全不同。强烈建议有抱负的程序员尝试学习他们试图编写代码的语言的名称。当你发布一个问题时,请适当地标记它-这可以让那些了解你需要帮助的语言的人看到你的问题。当然,对不起,我还是一个初学者,我不知道它们是不同的。谢谢,我会记住这一点,并会立即更改它们谢谢你的帮助!