| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 527 人关注过本帖
标题:[讨论]对于这个程序大家的看法
取消只看楼主 加入收藏
ada518618
Rank: 1
等 级:新手上路
帖 子:184
专家分:0
注 册:2006-3-27
收藏
 问题点数:0 回复次数:3 
[讨论]对于这个程序大家的看法
class ParentClass{
public ParentClass(){
System.out.println("PC");
}
static int a=geta();
static int geta(){
System.out.println("10");
return 10;
}
public void printa(){
System.out.println("a"+a);
}
}
public class TestClass extends ParentClass{
int a=getb();
static int b=geta();
public TestClass(){
System.out.println("TC");
}
int getb(){
System.out.println("100");
return 100;
}
public static void main(String args[]){
TestClass t= new TestClass();
t.printa();
}
}
大家看看这个程序!
搜索更多相关主题的帖子: 看法 
2006-05-25 10:57
ada518618
Rank: 1
等 级:新手上路
帖 子:184
专家分:0
注 册:2006-3-27
收藏
得分:0 
恩呀!我不懂啦!所以我想问问!

Eclipse!尽管我现在不懂祢,可是我却对你情有独钟……
2006-05-25 11:09
ada518618
Rank: 1
等 级:新手上路
帖 子:184
专家分:0
注 册:2006-3-27
收藏
得分:0 
斑竹,你就给我简单说明一下吧!

Eclipse!尽管我现在不懂祢,可是我却对你情有独钟……
2006-05-25 11:10
ada518618
Rank: 1
等 级:新手上路
帖 子:184
专家分:0
注 册:2006-3-27
收藏
得分:0 
以下是引用千里冰封在2006-5-25 11:17:00的发言:

先是初始化静态成员变量和静态初始化块,但是静态的初始化也是从父类开始的
所以static int a=geta();开始,geta()被调用,一开始输出是:
10

然后初始化子类的静态成员变量static int b=geta();还是调用geta(),所以输出是:
10
然后开始初始化父类的成员变量和调用父类的构造函数,
所以调用了父类的构造函数,这个时候输出的是:
PC
然后初始化子类的成员变量和调用子类的构造函数,int a=getb();这个时候调用了getb(),所以输出的是:
100
然后调用子类的构造函数,所以输出的是
TC
最后子类的对象构造出来了,用这个对象去调用printa()所以输出的 是:
a10

恩!原来真的跟我想的一样啊!不过就是不确定子类中成员变量跟构造函数的先后执行顺序,所以才来问问的!!
现在清楚了!斑竹,谢啦!


Eclipse!尽管我现在不懂祢,可是我却对你情有独钟……
2006-05-25 11:35
快速回复:[讨论]对于这个程序大家的看法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016978 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved