作者snobbery (egoist)
看板java
标题Re: [问题] class里面自己宣告自己
时间Thu Sep 30 05:32:55 2010
: 但是如果test.java变成如下:
: public class test{
: public void prt(){
: System.out.println("subroutine");
: }
: public static void main(String [] args){
: test t=new test();
: }
: }
: 这样我就不太懂意思?
: 因为test长什麽样子是规定出来了没错,
: 但是test这个型别的规格里面却又产生了自己一份??
: 这样不会有循环定义的可能吗?
: 然後, 又再什麽时机之下我需要用到这样的定义方法呢?
我把我了解的讲一遍, 看看对不对?
因main() method是static, 所以可以不被new出一个物件就被执行,
而系统的进入点就是"系统不建立物件, 而直接call了main() method"
所以虽然之後我可以在别的class里面new出test这个物件,
但是反正我也不执行他, 所以就没关系了.
这样讲对吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.247.44.66
1F:推 a1234957:还有就是static在JVM里面是唯一的 不会像物件一样new很多 09/30 06:59
2F:推 a1234957:不过也是有确保class只会有单一instance的方法和场合 09/30 07:03
3F:→ a1234957:static"有点像是"其他语言的global variable 09/30 07:04
4F:推 a1234957:如果data member被宣告为static,则不需要new他就会 09/30 07:10
5F:推 a1234957:存在JVM里 其他的则可能会被GC回收 09/30 07:13
6F:推 a1234957:我可能讲得很乱,你可以去找资料了解static吧@@ 09/30 07:17
7F:→ snobbery:谢谢楼上详细的解答, 我想我应该了解了! 09/30 09:42