java问题,运行不了,我新手,求解释,
发布网友
发布时间:2024-10-11 23:16
我来回答
共5个回答
热心网友
时间:2024-10-12 00:03
主要是写到方法不对,如果要在静态的方法中调用另一个方法,就需要把那个方法先改成静态的,或者将那个方法所在的java类实例化后再通过实例化调用。
public class FactorialDemo {
static double n;
double factorial(double n) {
if (n == 1 | n == 0)
return 1;
else
return n * factorial(n - 1);
}
public static void main(String args[]) {
System.out.println(new FactorialDemo().factorial(5.0));
}
}
热心网友
时间:2024-10-12 00:03
Cannot make a static reference to the non-static method factorial(double) from the type FactorialDemo
不能在静态方法里面访问非静态方法
改为:
public class FactorialDemo {
static double n;
double factorial(double n){
if (n == 1 |n == 0) return 1;
else return n*factorial(n - 1);
}
public static void main(String[] args) {
System.out.println(new FactorialDemo().factorial(5.0));
}
}
热心网友
时间:2024-10-12 00:03
public class FactorialDemo{
static double n;
static double factorial(double n){//mian方法为static类型
if (n == 1 |n == 0) return 1;
else return n*factorial(n - 1);
}
public static void main(String args[]){
System.out.println(factorial(5.0));
}
}
热心网友
时间:2024-10-11 23:59
public class FactorialDemo{
static double n;
static double factorial(double n){
if (n == 1 |n == 0) return 1;
else return n*factorial(n - 1);
}
public static void main(String args[]){
System.out.println(factorial(5.0));
}
}
或者
public class FactorialDemo{
static double n;
double factorial(double n){
if (n == 1 |n == 0) return 1;
else return n*factorial(n - 1);
}
public static void main(String args[]){
FactorialDemo fd =new FactorialDemo();
System.out.println(fd.factorial(5.0));
}
}
热心网友
时间:2024-10-12 00:01
静态方法里不能调用非静态的方法或属性。 所有直接调用factorial出错 改为静态 或者实例化
public class FactorialDemo{
static double n;
static double factorial(double n){
if (n == 1 |n == 0) return 1;
else return n*factorial(n - 1);
}
public static void main(String args[]){
System.out.println(factorial(5.0));
}
}