java - 将 main(String args[]) 放在代码底部的原因是什么?

标签 java program-entry-point

在我的教科书中,他们将 main 函数放在代码示例的底部。作为一个传统的读书人,我从第 1 行开始阅读。虽然我知道编码与书中的控制流程不同(从下到上,一行一行),但我不明白你为什么想要你的第一个代码行不是你程序的入口点。这有什么特别的原因吗?

最佳答案

我不能代表作者,但我能想到几个原因:

  1. 作者可能想强调类中的实际方法。实际上,很少有 Java 类甚至有 main 方法(不到 1%)。在一个类中重要的是它的对象如何表现;也许 main 方法几乎是事后才想到的或最好有的。

  2. Java 受到 C 编程语言的影响。尽管在 Java 中声明方法的顺序并不重要,但在 C 中(至少在旧版本的 C 中),如果函数声明在 main< 之上,则只能从 main 调用函数。所以人们要么使用原型(prototype),要么只是将 main 放在底部。很多人出于习惯这样做,哦,我不知道,这在潜意识中影响了他们的想法,即他们将其带入 Java。

但是许多人都认为入口点应该首先出现,并且函数应该“在页面下方”相互调用。罗伯特 C. 马丁(鲍勃叔叔)说这是一件好事。

附录

我正在寻找 Bob 叔叔关于阅读页面的建议的引用,这或多或少被称为报纸隐喻。我找到了 this snippet摘自 Martin 的Clean Code 一书的书评:

... the newspaper metaphor that is mentioned with regards to formatting your code. This describes the idea of making code read like a newspaper article. We should be able to get a general idea of how it works near the top of the class before reading more and more details further down.

但是,你知道,我真的认为这是从 C 继承的传统(必须先声明那些被调用的函数)或者对自下而上的强调使得 main 经常出现在Java 中的底部。

关于java - 将 main(String args[]) 放在代码底部的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26968964/

相关文章:

分数高于 100 时无法显示 "Invalid Score. Please Re-enter"

java - 我们可以在一个接口(interface)中有一个 main() 并在实现这个接口(interface)的类中有不同的 main() 实现吗?

java - 如何使用spring boot在ehcache3中存储键和值

java - Tomcat中webapp映射静态资源到jar

Java 泛型,需要解释

java - 我们可以改变java的主要方法吗?

java - java中的有符号和无符号数据类型

java - UnboundID SASL无法获取密码

java - 当我们不传递任何命令行参数时,为什么不会出现错误?

C++ 在 main 中调用打印 map 的函数时出现问题