你们可以帮我解决以下问题?
它给了我以下错误:
错误:类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;
}
}
}
答案 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)
该函数的签名为absoluteValue(double d)
,因此它需要double
作为参数,但您可以将其称为absoluteValue();
,而不是public double absoluteValue(double d){
//...
}
。您需要将功能签名设置为
public static void main(String[] args){
new Pset3Ex4().absoluteValue();
}
您的函数不是静态的,它需要调用实例,所以:
使用实例
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;
}
}
}