返回java中的类型和方法

时间:2018-05-19 20:36:03

标签: java methods return

你们可以帮我解决以下问题?

它给了我以下错误:

  

错误:类Pset3Ex4中的方法absoluteValue不能应用于给定类型;

import java.util.Scanner;

public class Pset3Ex4 {

    public static void main(String[] args) {
        absoluteValue();
    }

    public double absoluteValue(double d) {
        Scanner sc = new Scanner(System.in);

        System.out.print("Input a number: ");
        d = sc.nextDouble();

        if (d < 0) {
            return -d;
        } else {
            return d;
        }
    }
}

5 个答案:

答案 0 :(得分:2)

您正在调用方法

 absoluteValue() 

没有任何参数,虽然您已经使用双参数定义了一个方法

absoluteValue(double d), 

所以java编译器没有找到方法

absoluteValue() 

没有争论。

其次,您尝试从静态main方法调用非静态方法,这是不允许的。

答案 1 :(得分:0)

你的absoluteValue既不是静态的,也不是零参数。因此,当您尝试编译时会出现错误。

要解决此问题,只需更改public static double absoluteValue() { double d; ... 的签名和修饰符:

{{1}}

答案 2 :(得分:0)

首先,您需要将参数传递给该函数(双参数!) 其次,这个函数需要是静态的,它是尚未实例化的类的一部分。如果你创建一个新实例,意思是:

 Pset3Ex4 p = new Pset3Ex4();

您将能够从p(新实例)调用该函数。 否则,你必须使这个方法变为静态,它允许你访问它而不必创建它的新实例。

答案 3 :(得分:0)

  1. 该函数的签名为absoluteValue(double d),因此它需要double作为参数,但您可以将其称为absoluteValue();,而不是public double absoluteValue(double d){ //... } 。您需要将功能签名设置为

    public static void main(String[] args){
        new Pset3Ex4().absoluteValue();
    }
    
  2. 您的函数不是静态的,它需要调用实例,所以:

    • 使用实例

      public static double absoluteValue(double d){
           //...
      }
      
    • 让它静止

      const getStyle = context => ({
        fontWeight: "bold",
        color: context.color,
      })
      

答案 4 :(得分:-1)

检查您是否正在查看此内容。方法'absoluteValue'不是静态的,当你在main中调用方法时,你没有传递任何参数。

import java.util.Scanner;

public class Pset3Ex4 {

public static void main(String[] args){
System.out.print("Result is " + absoluteValue());
}

public static double absoluteValue(){
Scanner sc = new Scanner(System.in);

System.out.print("Input a number: ");
d = sc.nextDouble();

if (d < 0){
return - d; 
}
else {
return d;
}

}  
}