有趣的对象初始化

meran 2011-07-26 08:31:12
package com.kenwublog.tmp;



public class A extends B {

public int a = 100;



public A() {

super();

System.out.println(a);

a = 200;

}



public static void main(String[] args) {

System.out.println(new A().a);

}

}



class B {

public B() {

System.out.println(((A) this).a);

}

}


不要运行这段代码 你觉得结果是什么?答对有分~,偷着运行的木有小JJ
...全文
91 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
meran 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 zn85600301 的回复:]
引用 8 楼 zhao251021539 的回复:

哈哈 这个问题是转自淘宝中间件博客的~ 主要不是问题的难度,而是告诉我们。。。不要在构造函数里插入太多业务逻辑啊。。。要么会因为初始化的问题搞的很糟糕


构造函数在web开发中 已经很少用了 不过SWING开发 有很多是必须在构造时传参的
[/Quote]
哈我没打算做WEB开发 做的人太多了~~
zn85600301 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhao251021539 的回复:]

哈哈 这个问题是转自淘宝中间件博客的~ 主要不是问题的难度,而是告诉我们。。。不要在构造函数里插入太多业务逻辑啊。。。要么会因为初始化的问题搞的很糟糕
[/Quote]

构造函数在web开发中 已经很少用了 不过SWING开发 有很多是必须在构造时传参的
zn85600301 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zhao251021539 的回复:]

引用 4 楼 zn85600301 的回复:
0
100
200
不解释 debug全知道了

debug了。。。你木有小JJ啊
[/Quote]
我靠 我说不解释 有问题DEBUG就知道了
我吧 我的不小
zl3450341 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zhao251021539 的回复:]

引用 4 楼 zn85600301 的回复:
0
100
200
不解释 debug全知道了

debug了。。。你木有小JJ啊
[/Quote]
++
meran 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zn85600301 的回复:]
0
100
200
不解释 debug全知道了
[/Quote]
debug了。。。你木有小JJ啊
meran 2011-07-26
  • 打赏
  • 举报
回复
哈哈 这个问题是转自淘宝中间件博客的~ 主要不是问题的难度,而是告诉我们。。。不要在构造函数里插入太多业务逻辑啊。。。要么会因为初始化的问题搞的很糟糕
桃园闲人 2011-07-26
  • 打赏
  • 举报
回复
100
100
200

个人认为是这样的。理由就不详述了。
HeiBoyYang 2011-07-26
  • 打赏
  • 举报
回复
呵呵
lz 顶下
0
100
200

如果基础好点能快能看出来结果
zl3450341 2011-07-26
  • 打赏
  • 举报
回复
看来楼主的问题不给力啊。大家都懂。。。
zn85600301 2011-07-26
  • 打赏
  • 举报
回复
0
100
200
不解释 debug全知道了
我嘞个去 2011-07-26
  • 打赏
  • 举报
回复
0
100
200
zousir18 2011-07-26
  • 打赏
  • 举报
回复
0
100
200
zl3450341 2011-07-26
  • 打赏
  • 举报
回复
0
100
200

先执行了super();去到了B的构造函数,但是在B的构造函数里面由于B实例根本没有a变量,就算你强转过去,得到的a值 肯定为0(默认值) 再执行 System.out.println(a); 这个时候打印的是A中的成员变量a 100

然后再将a = 200; 所以打印出来的应该是200

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧