抱歉天真的问题。我学习Java编程,并在一开始就有一个问题。
我按照Lesson: A Closer Look at the "Hello World!" Application,您可以在其中找到以下代码。
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
在C ++编程方面有一些经验,这段代码看起来很奇怪。
类 HelloWorldApp 包含应用程序的起点,对我来说它看起来很奇怪,因为有很多要点,例如,为了得到这个工作,我认为我们需要以某种方式唤起方法< strong> main 因为它在课堂上,但它可以正常工作。如果我有几个课程(我也不确定它是否可以在Java应用程序中使用?但是,一般来说它应该没问题),所以我可以在app中定义几个起点?
在课堂上定义凝视点的原因是什么?
答案 0 :(得分:5)
Java不是C ++。 C ++必须保持与C的向后兼容性,因此尽管它是面向对象的语言,但它仍然具有过程语言的所有元素,包括独立的独立函数。例如,函数main(int argv, char ** arc)
是任何C(因此也是C ++)程序的入口点。
与C ++不同,java从头开始定义为纯面向对象语言。因此那里没有功能。它们由必须属于类的方法替换。但是,static
方法有时非常有用。一个例子是main()
方法。实际上,在创建任何类实例之前,您需要一些程序入口点。 Java编程语言设计者选择的完美解决方案是指定具有签名main()
的特殊方法public static void main(String[] args)
,JVM将其用作程序的入口点。
答案 1 :(得分:3)
当您启动Java程序时,通常会告诉JVM包含main
方法的类的名称(在命令行或通过.jar清单),将被调用以启动程序。您可以使用main
方法创建多个类,但只有一个类在运行程序时成为“main
方法。
请注意,许多Java框架(applet,J2ME,Android等)在内部定义了它们的起点,并且您不应该提供main
方法作为入口点。
答案 2 :(得分:2)
你是对的,main
是一种方法,它必须是invoked
,
您需要了解的是,
public static void main(String[] args)
方法main(Sring[] args) is public and static
。
记住;
- 公共方法可以在类,包,其他包等任何地方访问(无处不在)
- 静态方法不需要对象,它们是类的一部分。
醇>
因此,在编译程序时,JVM会查找public static void main() method
,以启动程序。这就是它的设计方式,然后我们遵循OOPS概念,我们根据使用情况导入类,方法。
此处的关键字是要了解main() method is public and static
和第一个事物JVM looks is a public static main method
。
答案 3 :(得分:1)
在运行时,main()
方法会调用JVM(Java Virtual Machine)
方法。它可能有这么多的类,但只有一个类包含main()
方法,而app从类开始包含main()
metod。
答案 4 :(得分:0)
为了得到这项工作,我认为我们需要某种方式来唤起这个 方法主要因为它在类中,但它按原样工作。
JVM:Java虚拟机在运行程序时查找提到的java类中的main方法。因此调用main方法会发生,但作为程序员,你不需要这样做,jvm会这样做。
如果我有几个课程(我也不确定它是否适合java) 应用程序吗?但是,一般情况下应该没问题,所以我可以定义几个 app中的起点?
通常,任何应用程序都有一个起点,因此主要方法应该出现在起始类中。其他类可以在需要时由主类使用或调用。
答案 5 :(得分:0)
JVM (java虚拟机)在程序中查找main方法,并首先运行该方法。你必须告诉JVM它在哪个类(IDE为你做这个)。方法签名必须始终将其定义为公共静态void,因为它不能返回任何内容并且可以远程访问。
答案 6 :(得分:0)
在java中,application是包含方法public static void main(String[] args)
的任何类。通常,应用程序也使用库,它们是类的集合。这些类也可能包含方法main
,但它们不会自动调用(但可以直接通过其他类的名称调用)。
答案 7 :(得分:0)
问:如果我有几节课(我也不确定是否可以参加 java app?但是,一般情况下应该没问题,所以我可以定义几个 app中的起点?。
答:绝对是的。
例如,你可以在一个类中使用“main()”来调用GUI前端,在命令行前端的不同类中使用“main()”;然后用一个或另一个调用你的程序。
或者你可以有一个“main()”来调用你班上的单元测试函数。
由于只会执行一个“main()”,因此定义多个入口点的功能使您可以灵活地从完全相同的代码库创建程序的不同“版本”。
问:所以我可以在app中定义几个起点?
答:是的 - 确切地说:)
您可以在启动程序时动态选择其中任何一个。
答案 8 :(得分:0)
你在课堂上有起点的原因是因为所有都是一个类。
不确定您是否知道 - Java已完全且仅面向对象。因此任何和每个文件都是对象的定义。没有函数 - Java有static
个方法,它们的作用相同。 main()
是static
函数,因此Java可以工作并具有起点。
关于多个起点 - 当你运行java程序时,你会以某种方式选择“起始”类。当您编译并拥有单个文件时(在命令行中)
java mymainclass.class
如果您将程序变成java文件的存档(称为.jar),则使用
java -cp myjarprogram.jar <path to main class>
可双击.jars有一个清单文件,其中包含主类的位置。