解释一下这个Java程序,想知道那个构造方法是怎么返回值的,返回的是什么值?这个程序是按照怎样的顺

解释一下这个Java程序,想知道那个构造方法是怎么返回值的,返回的是什么值?这个程序是按照怎样的顺序执行的??

这个问题其实比较简单呀.. 不过如果要理解内部的一些原理就比较麻烦了.. 首先是new 了一个House对象,这时它的执行顺序应该是 先执行House类中的static代码块,但是由于没有,所以没有执行,然后就去找House类中的成员变量初始化(也就是去new Window对象出来,执行顺序也是这样的),最后再执行自己的构造函数. 构造方法是不能有返回值的,它只能有不同的参数列表~
总之就是,有static的,先执行static,有多个static则按顺序执行,然后再初始化成员变量,同样是按顺序执行.最后才调用构造方法. 因为在初始化成员变量的时候,也是按这个顺序执行的,就有一种递归的感觉.追问

是不是当看到第20行的House h=new House();时,就开始去执行House中的引用成员变量w1,w2和w3,也就是输出执行上面的Window?

是不是看到Window w1=new Window(1)时,就去执行Window啦?

追答

恩恩~ 就是这样

追问

谢谢哈(*^o^*)

追答

不客气~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-31
构造方法没有返回值追问

嗯嗯,那是怎么输出来那些值的呢??

追答

过程是这样的:
main方法new一个House对象,先加载House类,初始化静态成员,再初始化成员变量,则要new3个window对象,参数分别是,1,2,3,则输出,“Window(1),Window(2),Window(3),”初始化完毕,再调用House构造方法,输出“House()”
还要new一个window对象,参数33,则输出“Window(33)”,然后这个house对象要调用f()方法,f方法是,输出“f()”
则全部结果就是:
Window(1)
Window(2)
Window(3)
House()
Window(33)
f()

追问

不懂呀,,

追答

哪里不懂

追问

那这个程序是从第18行开始执行的么?

追答

main方法是程序入口

追问

19行是不?

可以给我把这个程序的执行顺序说一下吗?就是先第几行,再第几行?

追答

等会

追问

好的哈

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网