我已经用Java编程很长一段时间了,但它总是只是Android应用程序,而不是从静态的主方法开始。我想知道“标准”Java程序的约定,因为大多数时候,我调用的是非静态方法,这些方法显然不能通过main()方法直接完成。
下面是我编写的一个示例程序(只打印一个Fibonacci数字)。这是一个可以接受的解决办法吗?
public class MainClass {
public static void main(String[] args) {
new MainClass().mainProgram();
}
public void mainProgram() {
System.out.println(fibonacci(10).toString());
// go on with the program
}
// suppose this method needed to be non-static
public Integer fibonacci(int count) {
if (count <= 0) {
return null;
}
if (count == 1 || count == 2) {
return 1;
}
// noinspection
// (suppresses logically impossible null-pointer exception warnings)
return fibonacci(count - 2) + fibonacci(count - 1);
}
}发布于 2021-07-27 20:50:14
就是这样。
创建一个对象实例。调用实例上的方法。
例如,这是Springboot应用程序中的典型代码。
创建一个SpringApplication实例,然后调用实例方法run。
public class Application {
public static void main(final String[] args) {
final SpringApplication application =
new SpringApplication(Application.class);
application.run(args);
}
}至于"main“方法的名称,在上面的示例中,run是有意义的,因为您希望run应用程序。
但是它可以是任何类似run,execute,start,serve,scan --这取决于你的程序做什么。
在您的具体情况下,我将它称为calculateFibonacci,或者如果您的类名为Fibonnacci,则只命名为calculate()。
,你是这样做的还是我应该改变什么?
我觉得你的代码看起来不错。
I编写的方式如下所示
public class Fibonacci {
public static void main(String[] args) {
Fibonacci fibonacci = new Fibonacci();
fibonacci.execute();
}
public void execute(){
System.out.println(fibonacci(10));
}
public int fibonacci(int n){
if (n <= 0){
throw new IllegalArgumentException(
"n must be greater then 0. Received: " + n);
}
if (n == 1 || n == 2){
return 1;
}
return fibonacci(n - 2) + fibonacci(n - 1);
}
}异常的原因,而不是null,以指示实际无效(或非法)参数。程序不能计算,而null将指示一个负数的计算结果为null,但情况并非如此。
但你拥有它的方式是完全好的。
https://stackoverflow.com/questions/68551553
复制相似问题