基本多类Java程序出错

基本多类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

我尝试取两个浮点值,看看哪个更大,然后返回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 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
如何返回布尔值并同时将两个浮点值传递到类中?这可能吗?如果您想这样做,请使用自定义对象(创建一个同时具有返回类型的类)并返回该对象。这更有意义。非常感谢。