java: 无法从静态上下文中引用非静态 方法

醉酒当歌 提交于 2020-03-09 16:38:15

遇到的问题是这样的

public static void main(String[] args) {
//        TextArrays a=new TextArrays();
        int n=0;
        Scanner scanner=new Scanner(System.in);
        n=scanner.nextInt();
        System.out.println(f(n));
    }
     public  int f(int n){
        if(n==1||n==2){
            return 1;
        }
        else{
            return f(n-1)+f(n-2);
        }
    }

报错是这样的:Error:(14, 28) java: 无法从静态上下文中引用非静态 方法 f(int)

具体的解决:

new 一个对象调用非静态方法f
或者 将f()改成静态方法

在一个静态类里面 如果不通过对象调用一个非静态方法,这是不被允许的
要么把方法变成静态方法,要么通过对象来调用它

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!