您如何向初学者很好地解释以下摘录中的含义String args[]
和用法?static
class FirstApp {
public static void main(String[] args) {
...
}
}
我会分手
public static void main(String args[])
部分:
public
这意味着您可以从当前所在类的外部调用此方法。这是必要的,因为此方法正在由不在您当前类中的 Java 运行时系统调用。
static
当 JVM 调用 main 方法时,被调用的类不存在对象,因此它必须具有静态方法才能允许从类调用。
void
Java 是独立于平台的语言,如果它会返回一些值,那么该值对于不同的平台可能意味着不同的东西。还有其他方法可以在多线程系统上退出程序。详细解释。
main
这只是方法的名称。此名称是固定的,因为它被 JVM 称为应用程序的入口点。
String args[]
这些是您的 Java 应用程序在运行时接受的 String 类型的参数。
我会将初学者指向有关 Main 功能的 Wiki 文章,然后用它来补充它。
Java 仅开始运行具有特定public static void main(String[] args)
签名的程序,并且可以将签名想象为他们自己的名字——这就是 Java 可以区分别人的签名和真实的签名的main()
方式main()
。
String[] args
是String
s的集合,用空格隔开,可以在终端输入程序。很多时候,初学者不会使用这个变量,但它总是在那里以防万一。
public static void main(string [] args)
public
-它的访问说明符意味着我们可以从任何地方访问它;
static
-access 修饰符意味着我们可以直接使用类名调用此方法,而无需创建它的对象;
void
- 它的返回类型;
main
- 方法名称
string [] args
- 它只接受字符串类型的参数......并将其存储在字符串数组中
public
:它是一个访问说明符,这意味着它将被公开访问。static
:它是访问修饰符,这意味着当加载 java 程序时,它将自动在内存中创建空间。void
:它是一个返回类型,即它不返回任何值。main()
: 它是一个方法或函数名。string args[]
:它是一个命令行参数,它是字符串格式的变量集合。如果我要向某人解释这一点,我会说我们稍后再讨论,您需要知道运行程序的方法是使用:
public static void main(String[] args) {
...
}
假设他/她知道数组是什么,我会说 args 是一个参数数组,你可以展示一些很酷的例子。
然后,在您了解了一些关于 Java/JVM 之类的东西之后,您最终会接触到修饰符,也就是 static 和 public。
然后你可以花一些时间谈论这些恕我直言的含义。
您可以提及其他“很酷”的东西,例如可以在更高版本的 Java 中使用的可变参数。
public static void main(String ...args) {
//...
}
为了保持初学者的态度,您可以解释所有命令行都自动拆分为一个字符串数组(the String[]
)。
因为static
你必须解释,它不是一个像另一个字段:它在 JVM 中是唯一的,即使你有数千个类的实例
静态也是如此main
,因为它是在jar
.
在你看过编码之后,你的工作就开始了。
我只是想我会参与这个。不过,其他人已经很好地回答了。
完整的主要方法声明应该是:
public static void main(final String[] args) throws Exception {
}
args 被声明为 final,因为从技术上讲,它们不应被更改。它们是用户给定的控制台参数。
您通常应该指定 main throws Exception 以便可以轻松地将堆栈跟踪回显到控制台,而无需执行 e.printStackTrace() 等。
至于数组语法。我更喜欢这种方式。我想这有点像法语和英语之间的区别。在英语中是“a black car”,在法语中是“a car black”。哪个是重要的名词,汽车还是黑色?
我不喜欢这种事情:
String blah[] = {};
这里重要的是它是一个字符串数组,所以它应该是
String[] blah = {};
废话只是一个名字。我个人认为在 Java 中有时可以以这种方式声明数组是一个错误。
静态的正常用法是直接访问函数而不创建任何对象。与在 java main 中相同,我们无法为该类创建任何对象来调用 main 方法。它将自动执行。如果我们想手动执行,我们可以在类内使用 main() 并从类外使用 ClassName.main 来调用。