首页 > 解决方案 > 在不使用java中的对象的情况下调用同一类的函数的正确方法是什么?

问题描述

java - 如何在不使用对象的情况下在java中调用同一类的函数?

我试过了,但出现错误:

'不能从静态上下文中引用非静态方法 facti(int)' System.out.print(facti(number));

public class Facto {
    int i, fact =1;
     int facti(int num){
        if(num == 0){
            System.out.print("For Zero ");
            return 1;
        }
        else
        for (i = 1; i <= num; ++i)
        {
            fact = fact * i;
        }
        return fact;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter a number for factorial : ");
        int number = sc.nextInt();
        Facto f1 = new Facto();
        System.out.println(f1.facti(number));
    }
}

标签: javafunctionclassobject

解决方案


简单的答案:你不能。您的主要方法是“静态的”,它只能调用其他静态方法(在同一类中)或对象的方法。因此,您也可以将“事实”设为静态。或者你创建一个对象: Facto f = new Facto(); f.facti(13); 并在该对象上调用 facti 。


推荐阅读