为什么java程序从类定义开始?
据说java程序本身就是一个类,但我不明白背后的逻辑 java程序本身从类的定义开始(在导入包…等之后),主方法本身在类中定义 为什么是这样 为什么主方法必须被包含在一个类中,而不是作为一个单独的方法/函数包含在诸如C、C++等……< /P>之类的语言中。 例如,一个简单的java hello world程序:-为什么java程序从类定义开始?,java,class,Java,Class,据说java程序本身就是一个类,但我不明白背后的逻辑 java程序本身从类的定义开始(在导入包…等之后),主方法本身在类中定义 为什么是这样 为什么主方法必须被包含在一个类中,而不是作为一个单独的方法/函数包含在诸如C、C++等……< /P>之类的语言中。 例如,一个简单的java hello world程序:- public class HelloWorld { public static void main(String[] args) { System.ou
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello world!"+"Hello again");
}
}
为什么一个程序必须从一个类及其包含的主要方法开始?Java虚拟机(JVM)必须在某个地方启动应用程序。由于Java没有“类外的事物”的概念,JVM调用的方法必须在类中。因为它是静态的,所以还没有创建该类的实例。JVM不理解类之外的概念方法。基本上,JVM调用的任何方法都必须在类中。main方法是静态的,因为在java应用程序开始时没有初始化任何内容,因此使其成为静态允许JVM调用它作为起点。因为java语言规范这么说!例如,见。或者更准确地说: Java虚拟机通过加载指定的类,然后调用该指定类中的main方法来启动 (见第12章开头,) 有时候事情的背后并没有什么“大”的原因,java语言的创始人可能已经了解了其他语言在他们开始java时所做的事情。他们决定采用这种方法——而且从来没有一个艰难而紧迫的理由回来改变这种情况 除此之外:您必须了解JVM并不关心Java源代码。它只关心Java字节码规范和编译后的.class文件中的complete类
换句话说:除了类之外,没有其他“单元”可以围绕单个方法/函数 Java是一种面向对象的语言,它不支持过程编程。记住Java是一种基于类的面向对象语言:为什么不呢?C++是一个很好的例子,如果没有这种限制,“为什么会这样”,因为这就是方法。本来可以不同,但事实并非如此。这只是很久以前的一个设计决定。@steve你到底在说什么我错了?为什么要接受一个完全相同的答案,只是更详细?规范的第12章和第5章详细解释了这个过程,谢谢。