Java第三讲动手动脑

1

以上代码无法通过编译主要是由于在Foo类中自定义了有参的构造函数,系统不在提供默认的构造函数(无参),而在上述的引用中并没有提供参数导致无法通过编译。

2.

 

运行结果

 

 

 由运行结果分析可知,在运行时若提供有参的构造则执行有参构造,如为提供参数应该看初始化的顺序,

 程序会先执行一边靠前的初始化在执行靠后的初始化,因此最终值取决于靠后的初始化。

3.

 

通过运行结果总结静态初始化块的执行顺序:

  1.静态初始化块只执行一次

  2.创建子类型的对象时,也会导致父类型的静态初始化块的执行。

4.

 

 

静态方法中不能直接访问类的实例成员,必须先创建对象,再通过对象访问。

 

posted on 2022-10-05 19:36  樱华旧梦  阅读(23)  评论(0)    收藏  举报