java初始化研究(zt)

转载 2007年10月02日 00:24:00
java在初始化的时候也有很多讲究,因为java中出现了类,所以在初始化的时候就有可能使用到创建新对象,所以,对于初始化的顺序要求的比较严格,请 看下面一个程序,是thinking in java中的一个程序,被我稍加改编,这样可以更好的说明几个初始化的要点:



class Cup

{

Cup(int marker)

{

System.out.println("Cup(" + marker + ")");

}

void f(int marker)

{

System.out.println("f(" + marker + ")");

}

}



class Cups

{

static Cup c1=new Cup(1);

Cup c3=new Cup(3);

static Cup c2= new Cup(2);

Cups()

{

System.out.println("Cups()");

}

Cup c4=new Cup(4);

}



public class ExplicitStatic

{

Cups c=new Cups();

{

System.out.println("Hello");

}

public static void main(String[] args)

{

System.out.println("Inside main()");

Cups.c1.f(99);

ExplicitStatic x=new ExplicitStatic();

}

static Cups x = new Cups();

}

大家可以手动执行一下这个程序,考虑一下结果是什么,然后参照下面的答案对照一下,看看是否正确:



Cup(1)

Cup(2)

Cup(3)

Cup(4)

Cups()

Inside main()

f(99)

Cup(3)

Cup(4)

Cups()

Hello

四个初始化的要点,如下:

1、如果有static,即静态成员定义,首先初始化static的变量,如,在类Cups中c3在c2前面,可是在输出的结果中,你可以发现,c2是在c3前执行的,这就是因为,所有的static都在第一时间被初始化。

2、Static只初始化一次,在第二次创建类的对象的时候,就不会去执行static的语句,如,在第二次执行new Cups()的时候,就只输出了Cup(3)和Cup(4),显然,static的两个创建对象的语句没有做。

3、变量的初始化在方法前。如,在Cups类中,方法Cups()在语句Cup c4=new Cup(4)之前,可是输出结果的时候,打印的Cups()却在Cup(4)之后。

4、在含有main的类中执行顺序是先做static,然后就是main,而不是像其它类一样,除了static就按顺序做下来。如,在main函数中, 如果去掉语句ExplicitStatic x=new ExplicitStatic(),则Cups c=new Cups()和System.out.println("hello")都不会执行 

全程图解主板 (ZT)

 大家知道,主板是所有电脑配件的总平台,其重要性不言而喻。而下面我们就以图解的形式带你来全面了解主板。   一、主板图解   一块主板主要由线路板和它上面的各种元器件组成   1.线路板   PCB印...
  • wishfly
  • wishfly
  • 2005年12月20日 12:48
  • 920

[ZT]全国车牌详解(含军牌)

全国车牌详解(含军牌) 当我们驾车在路上是不是经常看到一些很少见甚至不懂是什么部门的车牌呢?或许你能在这里找到答案哦!记得见到那些牛B的车牌可得。。。除非你比他更牛。。。不过我觉得我们吉普挂个“赛”...
  • u014461454
  • u014461454
  • 2014年03月31日 17:31
  • 733

[ZT]设计“好看”的用户界面(作者:王咏刚 2003 年10 月)

设计“好看”的用户界面 (王咏刚 2003 年10 月) 1 问题引入 两周前,我的一个朋友小W 找我聊天,跟我说了件烦心事儿:他们公司开发的一套行业软件在竞标时败给了竞争对手;当时,用户给出的理由是...
  • l1t
  • l1t
  • 2004年12月01日 11:49
  • 3388

[ZT]asp函数大全

1.函数array() 功能:创建一个数组变量 格式:array(list) 参数:list 为数组变量中的每个数值列,中间用逗号间隔 例子:  结果: i 被赋予为数组 2.函数Cint() 功能:...
  • YG200233
  • YG200233
  • 2004年12月15日 18:33
  • 723

[ZT]内容管理系统(CMS)的设计和选型

 作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明htt...
  • FringeDream
  • FringeDream
  • 2005年05月25日 21:53
  • 894

特化模板函数的符号多重定义错误问题解答

我正在用一个基于模板的库源代码,该库包含一些针对特定类型的模板函数特化。类模板,函数模板和模板函数特化都在头文件中。我在我的.cpp文件中 #include 头文件并编译链接工程。但是为了在整...
  • kikikind
  • kikikind
  • 2008年07月26日 10:35
  • 4225

软件开发的误区(zt)

随着计算机硬件水平的不断提高,计算机软件的规模和复杂度也随之增加。计算机软件开发从“个人英雄”时代向团队时代迈进,计算机软件项目的管理也从“作坊式”管理向“软件工厂式”管理迈进。这就要求软件开发人员特...
  • bbbian
  • bbbian
  • 2008年01月18日 11:31
  • 646

java解压缩

Java实现Zip压缩解压可以使用JDK的原生类java.util.zip,但是JDK 7 之前存在中文文件名乱码问题。使用 ant.jar 的org.apache.tools.zip包,可以避免...
  • UESTCAA
  • UESTCAA
  • 2016年04月29日 14:54
  • 440

javascript汉字转拼音 [zt]

var strGB="啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤...
  • zzcv_
  • zzcv_
  • 2008年02月28日 16:49
  • 9341

[zt] static 数据成员初始化

From: http://blog.csdn.net/niexiao2008/archive/2009/10/11/4635899.aspx 结论:       1、类中定义的静态数据成员必须在类定义...
  • zht_304
  • zht_304
  • 2010年03月15日 14:47
  • 742
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: java初始化研究(zt)
举报原因:
原因补充:

(最多只允许输入30个字)