在'公共静态无效的主要(string ARGS)'的'stringargs '和静态的解释'
你怎样才能解释得很好,对初学者来说 , String args[]
的含义和static
的使用在下面的摘录中?
class FirstApp { public static void main(String[] args) { ... } }
我将一个初学者指向Main函数的Wiki文章 ,然后用它来补充它。
-
Java只是开始运行一个具有特定
public static void main(String[] args)
签名的程序,人们可以想象一个像他们自己名字一样的签名 – 这就是Java如何区分别人的main()
和真实main()
。 -
String[] args
是String
的集合,由空格分隔,可以键入terminal上的程序。 更多的时候,初学者不会使用这个variables,但它总是在那里以防万一。
我会分手
public static void main(String args[])
部分:
public
这意味着您可以从您当前所在类的外部调用此方法。这是非常必要的,因为此方法由Java运行时系统调用,它不在您当前的类中。
static
当JVM调用main方法时,被调用的类不存在任何对象,因此必须使用静态方法来允许从类中调用。
void
Java是独立于平台的语言,如果它会返回一些值,那么这个值对于不同的平台可能意味着不同的东西。 还有其他方法可以在multithreading系统上退出程序。 详细说明 。
main
这只是方法的名称。 这个名字是固定的,并且被JVM调用为应用程序的入口点。
String args[]
这些是您的Java应用程序在运行时接受的Stringtypes的参数。
public static void main(string [] args)
public
– 访问说明符指的是我们可以访问的每个地方; static
访问修饰符意味着我们可以直接使用类名来调用这个方法,而不需要创build它的一个对象。 void
– 它的返回types; main
– 方法名称string [] args
– 它只接受stringtypes的参数。并将其存储在string数组中
-
public
:它是一个访问说明符,意味着它将被公开访问。 -
static
:它是访问修饰符,这意味着当Java程序加载时,它会自动在内存中创build空间。 -
void
:它是一个返回types,即它不返回任何值。 -
main()
:它是一个方法或函数名称。 -
string args[]
:它是一个命令行参数,它是一个string格式的variables集合。
如果我正在向某人解释这一点,那么我们现在就可以稍后再讨论这个问题,您需要知道运行程序的方式是使用:
public static void main(String[] args) { ... }
假设他/她知道一个数组是什么,我会说参数是一个参数数组,你可以显示一些很酷的例子。
然后,当你了解了一些关于Java / JVM和那些东西的东西之后,你最终还是会修改静态和公共的。
那么你可以花一些时间谈论这些恕我直言的意义。
你可能会提到其他“酷”的东西,比如可以在更高版本的Java中使用它的可变参数。
public static void main(String ...args) { //... }
为了保持初学者的态度,你可以解释为什么所有的命令行都是自动分成一个string( String[]
)的数组。
对于static
你必须解释,它不是像另一个领域:即使你有一千个类的实例在JVM中是唯一的
所以main
是静态的,因为它是在jar
find它(在自己的类中链接)的唯一方法。
…看完编码后,你的工作就开始了…
静态的正常使用是直接访问该函数,无需创build任何对象。 和java main一样,我们也不能为这个类创build任何对象来调用main方法。 它会自动执行。 如果我们想手动执行,我们可以通过在类内使用main()和在类外使用ClassName.main来调用。
我只是认为我会在这一块。 尽pipe其他人已经得到了很好的回答。
完整的主要方法声明应该是:
public static void main(final String[] args) throws Exception { }
参数被宣布为最终的,因为从技术上讲不应该被改变。 它们是用户给出的控制台参数。
您通常应该指定主要抛出exception,以便堆栈跟踪可以轻松地回显到控制台而无需执行e.printStackTrace()等。
至于数组语法。 我喜欢这样。 我想这有点像法文和英文的区别。 英语中是“黑色车”,法语中是“黑色车”。 这是重要的名词,汽车还是黑色?
我不喜欢这样的事情:
String blah[] = {};
这里重要的是它是一个String数组,所以它应该是
String[] blah = {};
这只是一个名字。 我个人认为在Java中有时候可能会以这种方式声明数组。
当你从控制台启动你的应用程序时,你需要执行java -jar(filename)(args),所以如果你要运行一个从文件读取的程序,
如果你的程序被称为readFile,在你做了一个可执行的版本之后(我不会解释怎么做这个部分),你必须推出这个程序。
java -jar readFile.jar C:/user/Matt/documents/myText.txt ^ launch program ^ args
文件位置将是程序的args []。