作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] public static void main(String[] args)
时间Fri Feb 24 12:54:09 2012
※ 引述《linbanden (冷板凳)》之铭言:
: 最近在研究JAVA,,目前刚刚学到物件导向,
: 发现每一个CLASS里面几乎都会加上
: public static void main(String[] args)
: 只有翻到会面的章节才不会有这一句
: 我知道 public: 宣告一个公开的类别
: static: 我不知道干嘛的= =
: void : 执行main()後不会回传任何数值,但我不知道main()是虾米= ="
: String: 一个字串,後面[]代表是 阵列?? 很模糊
: args : 书上说,可以在执行程式时,取得只用者指定的命令列引数
: 希望大大可以告诉我OR给我网址,让我学习
: 还是说学完整个物件导向自然就懂了!??!
: 谢谢
我觉得比较像是「懂了」才算学完物件导向
(所以... 我物件导向不太熟 [遮脸])
如果你能忘掉一切(啥?)
那麽,main() 就是 class 的一个 method
X! 这不是废话吗?
事实上很多时候很多人会忘记这个废话
然後问「另外一个程式在某种状况下去执行 java Foo,要怎麽作?」
当然绕出去要 OS 重新 Java 一个 Foo 也行
但是没太特别需求的话,那直接在 Java 程式中呼叫 Foo.main() 也行
至於其他的,我想大概很难一个网址解决掉
因为一个 method 可以不是 public、不是 static、不是 void
更可以塞其他 type 的参数、或是根本不塞
甚至是...
class Foo{
public static void main(String[] args){
}
public static void main(String arg){
}
private boolean main(){
}
}
而如果全部凑齐 public static void main(String[] args)
在某些情况下还会有特殊属性
就是对於 JVM 而言,这是一个「入口」,执行程式的起点
也因为要是执行程式的起点,所以它必须具备 public static
(至於原因,请参阅 Java 基础语法跟概念,不懂再问 XD)
因为最根本的运作环境是 command line
所以 JVM 提供 command line 传递参数进 class(就是 args 的功能)
至於 void... 我不确定有什麽特别设计思维在其中 XD
我比较好奇的是,你到底用那一本书
为甚麽前面几章的 class 完全没提到这个特别的 main method?
那程式要怎麽执行啊啊啊啊啊 <囧>
--
钱锺书:
说出来的话
http://www.psmonkey.org
比不上不说出来的话
Java 版 cookcomic 版
只影射着说不出来的话
and more......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.18.20
1F:→ awert:我猜因为没意义,main跑完,程式不是还在跑就是也结束了 02/24 20:18
2F:→ awert:忘了说上一句是回应为什麽main是void 02/24 20:19
3F:推 SP15905:对於void,如果简单来分,应该可以定义成该method所必须回 02/29 03:40
4F:→ SP15905:传的物件类别,其中void为不回传还是回传空值(有点忘了sry 02/29 03:42