解释一下这个Java程序,想知道那个构造方法是怎么返回值的,返回的是什么值?这个程序是按照怎样的顺序执行的??
这个问题其实比较简单呀.. 不过如果要理解内部的一些原理就比较麻烦了.. 首先是new 了一个House对象,这时它的执行顺序应该是 先执行House类中的static代码块,但是由于没有,所以没有执行,然后就去找House类中的成员变量初始化(也就是去new Window对象出来,执行顺序也是这样的),最后再执行自己的构造函数. 构造方法是不能有返回值的,它只能有不同的参数列表~
总之就是,有static的,先执行static,有多个static则按顺序执行,然后再初始化成员变量,同样是按顺序执行.最后才调用构造方法. 因为在初始化成员变量的时候,也是按这个顺序执行的,就有一种递归的感觉.追问
总之就是,有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行是不?
可以给我把这个程序的执行顺序说一下吗?就是先第几行,再第几行?
追答等会
追问好的哈