A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 ︶喂〆快到碗里 于 2014-8-27 20:50 编辑
  1. class X{
  2.                 Y b = new Y();
  3.                 X() {
  4.                         super();
  5.                         System.out.print("X");
  6.                 }
  7.         }
  8.         class Y {
  9.                 int a = 19;
  10.                 Y() {
  11.                         System.out.print("Y");
  12.                 }
  13.         }
  14.         public class Z extends X {
  15.                 Y y = new Y();
  16.                 Z() {
  17.                         super();
  18.                         System.out.print("Z");
  19.                 }
  20.                 public static void main(String[] args) {
  21.                         new Z();
  22.                 }
  23.         }
复制代码




评分

参与人数 1黑马币 +5 收起 理由
格子、 + 5 已排版,下次请注意对问题进行描述.

查看全部评分

15 个回复

正序浏览
看到回答,学习了!!!
回复 使用道具 举报
看你的代码真是一种折磨= =下次弄好格式再问啊  
阅读性这么差,别人看都不想看- -怎么回答你   发帖那里不是有个可以粘贴代码的么  下次格式弄好点

回复 使用道具 举报
本类成员的初始化在基类构造器之后。再执行构造器的其他部分。所以Z中的super()-->X中的super()-->X中new Y()-->X构造器的其余部分-->Z中的new Y()-->Z的其余部分。
回复 使用道具 举报
付剑翊 来自手机 中级黑马 2014-8-27 23:38:55
13#
对象的实例化顺序 静态成员显式初始化->静态代码块->非静态成员显式初始化->构造代码块->构造函数代码,子父类继承关系先执行父类后执行子类

评分

参与人数 1黑马币 +1 收起 理由
q291793758 + 1 这个才是有用的回答啊,实例化顺序.

查看全部评分

回复 使用道具 举报 1 0
初学a,看不懂
回复 使用道具 举报
如果没有下面的评论, 我可能就以为是嵌套类了  :L
回复 使用道具 举报
Imp_x 发表于 2014-8-27 00:10
我不是大神只是比你先学的小菜鸟
板书最好还是弄好点,不然出错翻看会很痛苦的 ...

恩!谢谢你的提醒,下次一定注意的
回复 使用道具 举报
。。。。。。。。。。。。。。。。。。。。。
回复 使用道具 举报
    差点忘了程序的执行顺序了
回复 使用道具 举报
Imp_x 高级黑马 2014-8-27 00:10:02
7#
︶喂〆快到碗里 发表于 2014-8-26 23:34
OK !谢了,对了,这也是一种书写格式,并不是格式不规范的!大神,你去看看Java源代码也都是用这种格式 ...

我不是大神{:3_52:}只是比你先学的小菜鸟
板书最好还是弄好点,不然出错翻看会很痛苦的{:3_60:}
回复 使用道具 举报
学习                           
回复 使用道具 举报
Imp_x 发表于 2014-8-26 21:46
看你的代码真是一种折磨= =下次弄好格式再问啊  
阅读性这么差,别人看都不想看- -怎么回答你   发帖那里不 ...

OK !谢了,对了,这也是一种书写格式,并不是格式不规范的!大神,你去看看Java源代码也都是用这种格式书写了,但总之谢谢你
回复 使用道具 举报
Imp_x 发表于 2014-8-26 21:46
看你的代码真是一种折磨= =下次弄好格式再问啊  
阅读性这么差,别人看都不想看- -怎么回答你   发帖那里不 ...

不好意思 !下次一定注意
回复 使用道具 举报
华谦 来自手机 中级黑马 2014-8-26 23:20:32
藤椅
我表示很晕
回复 使用道具 举报
看你的代码真是一种折磨= =下次弄好格式再问啊  
阅读性这么差,别人看都不想看- -怎么回答你   发帖那里不是有个可以粘贴代码的么  下次格式弄好点

  1. class X
  2. {
  3.         Y b = new Y();
  4.     X()
  5.                 {
  6.                         super();
  7.                         System.out.print("X");
  8.                 }
  9. }
  10. class Y
  11. {
  12.         int a = 19;
  13.     Y()
  14.                 {
  15.                 System.out.print("Y");
  16.         }
  17. }
  18. public class Z extends X
  19. {
  20.         Y y = new Y();
  21.     Z()
  22.                 {
  23.                         super();
  24.                         System.out.print("Z");
  25.         }
  26.     public static void main(String[] args)
  27.                 {
  28.                         new Z();
  29.         }
  30. }
  31. //看主函数,new了一个Z,而Z继承了X所以应该先从X开始读;然后X第一句又new了一个Y,所以转向先读Y。
  32. //先读Y,所以Y中输出一个Y;
  33. //执行完后回去X继续读X的后面的句子,输出X
  34. //然后再转回Z中的第一句话,new了一个Y,继续去读Y,输出一个Y
  35. //最后再转回Z,输出Z
  36. //所以最后结果是YXYZ
复制代码

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马