Article View: cn.comp.lang.java
Article #49Help!Maybe it's very simple for you?
From: Jack Dowson
Date: Wed, 25 Apr 2007 16:53
Date: Wed, 25 Apr 2007 16:53
73 lines
2656 bytes
2656 bytes
Hello,Everybody:
I'm new to java.I'm now confused by the sequence of initializing
static members of a class.
Here is an example which I wrote for testing:
class InitSequenceClassA{
static int i=0;
public InitSequenceClassA(){
i=15;
}
public InitSequenceClassA(int i){
this.i=i;
}
static void increment(){
i++;
}
}
class InitSequenceDemo{
public static void prt(String s){
System.out.println(s);
}
InitSequenceClassA isc = new InitSequenceClassA(10);
static InitSequenceClassA isc1, isc2;
static{
prt("isc.i=" + isc1.i+ "isc2.i=" + isc2.i);
isc1 = new InitSequenceClassA(27);
prt("isc1.i=" + isc1.i + "isc2.i=" + isc2.i);
isc2 = new InitSequenceClassA(15);
prt("isc1.i=" + isc1.i + "isc2.i=" +isc2.i);
}
public static void main(String[] args){
InitSequenceDemo d= new InitSequenceDemo();
prt("d.i=" + d.isc.i);
prt("isc.i=" + isc1.i+ " isc2.i=" + isc2.i);
isc1.increment();
prt("isc.i=" + isc1.i+ " isc2.i=" + isc2.i);
prt("d.i=" + d.isc.i);
}
}
Compile and excute this class we will get output as follow:
isc.i=0isc2.i=0
isc1.i=27isc2.i=27
isc1.i=15isc2.i=15
d.i=10
isc.i=10 isc2.i=10
isc.i=11 isc2.i=11
d.i=11
The first three lines of the output,that is
isc.i=0isc2.i=0
isc1.i=27isc2.i=27
isc1.i=15isc2.i=15
What happend to create the first three lines?
I think it might be:
1.the loading of class InitSequenceDemo;
2.after the loading of method main,the creating of object d;
which is right?
And which of the above actions comes first?
I mean loading of a class where main method located and loading of
method main,which comes first?
Any help will greatly be appreciated!
Thanks in advance!
Technical Details
Message-ID:
<f0o3gb$jou$1@news.cn99.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.cn99.com!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Thread: 10d5a2,d8a5adad2c9756f3,start X-Google-Attributes: gid10d5a2,public X-Google-Language: ENGLISH,ASCII-7-bit Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.cn99.com!not-for-mail From: Jack Dowson <jckdwsn@aol.com> Newsgroups: cn.comp.lang.java Subject: Help!Maybe it's very simple for you? Date: Thu, 26 Apr 2007 00:53:51 +0800 Organization: Bentium Ltd. (CN99) Lines: 76 Message-ID: <f0o3gb$jou$1@news.cn99.com> NNTP-Posting-Host: 222.178.10.192 Mime-Version: 1.0 Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: 7bit X-Trace: news.cn99.com 1177522507 20254 222.178.10.192 (25 Apr 2007 17:35:07 GMT) X-Complaints-To: usenet@news.cn99.com NNTP-Posting-Date: Wed, 25 Apr 2007 17:35:07 +0000 (UTC) User-Agent: Thunderbird 2.0.0.0 (Windows/20070326)