如何在main方法中调用非静态方法

时间:2017-10-12 01:12:21

标签: java for-loop methods static-methods non-static

我试图创建一个程序,用户输入一个数字,控制台是斐波那契数字。我很难搞清楚为什么像fibbonaci fib = new fibonacci正在停止我的计划。当计算机读取该行时,代码juts停止运行。

编辑:非常感谢答案的人,但我仍然无法理解。可以somone请重写代码,以便修复错误?谢谢!

编辑:我想通了,感谢所有的帮助!

import java.util.Scanner;

public class fibonacci {
    Scanner fnumber = new Scanner (System.in);
    int input = fnumber.nextInt();
    int f1 = 1;
    int f2 = 1;
    int answer = f1 + f2;

    public int fibonacci( int input) {
        for(int f2 = 1; f2<input; f2++ ) {
            int answer = f1 + f2;
            f1 = f2;
            f2 = f2 + 1;
        }
        return answer;
    }

    public static void main(String args[]){
        System.out.println("please enter a number");
        Scanner fnumber = new Scanner (System.in);
        int input = fnumber.nextInt();
        System.out.println("The " + input + "th number of the fibonacci sequence is " + fib.fibonacci(input));
    }
}

2 个答案:

答案 0 :(得分:0)

您必须创建班级的对象。然后在main方法(静态)中使用object调用方法。

fibonacci fib = new fibonacci();
fib.fibonacci(input);

答案 1 :(得分:0)

在你的主要实例化fibonacci类。

fibonacci f = new fibonacci ();
f.fibonacci(input);

此外,您的类(和文件)应该命名为Fibonacci。类名称始终具有大写首字母。