基本多类Java程序出错
我尝试取两个浮点值,看看哪个更大,然后返回true或false。这是我的代码:基本多类Java程序出错,java,Java,我尝试取两个浮点值,看看哪个更大,然后返回true或false。这是我的代码: import java.util.Scanner; public class Four_Ten { public static void main(String []args){ double num1, num2 = 0; Scanner scan = new Scanner(System.in); System.out.println("Enter a
import java.util.Scanner;
public class Four_Ten
{
public static void main(String []args){
double num1, num2 = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter a floating point value:");
num1 = scan.nextFloat();
System.out.println("Enter another floating point value:");
num2 = scan.nextFloat();
System.out.println(calcGreater(num1, num2));
}
public double calcGreater(double a, double b){
boolean greater = false;
if (a > b){
greater = true;
}
if (b > a){
greater = false;
}
return greater;
}
}
我得到以下错误:
无法从静态上下文引用非静态方法calcCreate(double,double)
如何修复此问题?尝试添加关键字
static
,它是一个布尔值
而不是双精度
-
public static boolean calcGreater(double a, double b){
// return (a > b); /* why not a > b? */
boolean greater = false;
if (a > b){
greater = true;
}
if (b > a){
greater = false;
}
return greater;
}
public double calcCreate(double a,double b)
不是一个static
方法,因此您不能从static
方法调用非static
方法
public static double calcGreater(double a, double b)
Four_Ten a=new Four_Ten();
a.calcGreater(double a, double b);
或
实例化对象并调用方法,如下所示
public static double calcGreater(double a, double b)
Four_Ten a=new Four_Ten();
a.calcGreater(double a, double b);
不仅如此:返回类型不匹配
public double calcGreater(double a, double b){ // expected return type double
boolean greater = false;
if (a > b){
greater = true;
}
if (b > a){
greater = false;
}
return greater; // you are returning boolean
}
创建一个类为Four_Ten的对象,然后调用如下方法
Four_Ten obj = new Four_Ten();
obj.calcGreater(num1,num2);
出现错误是因为静态成员无法直接访问非静态成员。在这种情况下,main()是静态的,而calcGreater()是非静态的,因此您需要一个对象来从static main()函数访问非静态函数calcGreater()。您认为错误消息是什么意思?用谷歌搜索错误。您将找到解决方案。阅读Java中的“static”关键字。预期返回类型为
double
,而返回boolen
如何返回布尔值并同时将两个浮点值传递到类中?这可能吗?如果您想这样做,请使用自定义对象(创建一个同时具有返回类型的类)并返回该对象。这更有意义。非常感谢。