为什么 Java 和 C# 将 main 函数放在 class 中?
Why does Java and C# place the main function inside of a class?
我不明白将 main
函数放在 class 中有什么意义!难道他们可以说 Java 和 C# 是完全面向对象的吗?
static
方法不是 OOP,所以这没什么意义。
Java 要求所有代码都在 class 内,即在 class 文件内。如果你不这样做,你将不得不把它放在某个地方,并且通过对 main
进行例外处理你不会有太多收获。最好保持简单。
I don't understand what is the point of placing the main function inside of a class!
与其问 "Why not do something",不如问 "Why do something",如果没有很好的理由,通常最好不要问。
class 中 main 背后的答案在进程和线程主题中。
阅读 Oracle's Processes and Threads 以更好地理解主题。
想法是您的 class 需要一个线程到 运行。您 class 是您申请的一部分。每个应用程序都需要一个 Process 和至少一个 Thread 才能 运行 处。默认情况下,使用 main 线程,这意味着 class' 代码 运行s 在 main 线程中默认情况下。
这两种语言都是在考虑面向对象的情况下创建的,没有任何向后兼容性包袱(不像 c++,例如也被认为是面向对象的,但它与 c 的向后兼容性强制它允许自由方法的概念, 在任何 class) 之外定义的方法,它的名字暗示它的所有构建块都基于一个对象。
他们这样做是为了简单起见。如果要允许 main 函数在 class 之外,那么该语言必须支持一种全新的机制来在 class 之外声明函数。目前不存在这样的机制,坦率地说,这是完全没有必要的。通过不向语言添加不必要的东西,他们使语言保持简单。
我不明白将 main
函数放在 class 中有什么意义!难道他们可以说 Java 和 C# 是完全面向对象的吗?
static
方法不是 OOP,所以这没什么意义。
Java 要求所有代码都在 class 内,即在 class 文件内。如果你不这样做,你将不得不把它放在某个地方,并且通过对 main
进行例外处理你不会有太多收获。最好保持简单。
I don't understand what is the point of placing the main function inside of a class!
与其问 "Why not do something",不如问 "Why do something",如果没有很好的理由,通常最好不要问。
class 中 main 背后的答案在进程和线程主题中。
阅读 Oracle's Processes and Threads 以更好地理解主题。
想法是您的 class 需要一个线程到 运行。您 class 是您申请的一部分。每个应用程序都需要一个 Process 和至少一个 Thread 才能 运行 处。默认情况下,使用 main 线程,这意味着 class' 代码 运行s 在 main 线程中默认情况下。
这两种语言都是在考虑面向对象的情况下创建的,没有任何向后兼容性包袱(不像 c++,例如也被认为是面向对象的,但它与 c 的向后兼容性强制它允许自由方法的概念, 在任何 class) 之外定义的方法,它的名字暗示它的所有构建块都基于一个对象。
他们这样做是为了简单起见。如果要允许 main 函数在 class 之外,那么该语言必须支持一种全新的机制来在 class 之外声明函数。目前不存在这样的机制,坦率地说,这是完全没有必要的。通过不向语言添加不必要的东西,他们使语言保持简单。