Lab02
Lab02
Question 01
-
m未被初始化; -
m需要被初始化才能使用,x为成员变量,具有默认值,m为局部变量没有默认值;
Question 02
**d.**类有两个构造方法,类中已经定义了两个有参构造方法,此时无参构造方法需要显示定义。
Question 03
输出
initialize A1initialize A2initialize A3initialize A4initialize A5initialize A6copy from A6initialize B1initialize A8main beginsinitialize A9initialize A6copy from A6initialize B2initialize A8main ends
分析
- 静态变量和静态代码块按声明顺序初始化;
- 实例变量在构造函数之前初始化;
main方法中的局部变量按顺序初始化;
Question 04
- 可以,因为每次创建
B类型对象都是先输出的initialize A6和copy from A6再输出的initialize A8; - 可以,每次创建
B类型对象都是先输出的initialize A6再输出copy from A6;
Question 05
静态属性初始化方式
- 在属性定义处显示初始化(如本例中的
a1); - 在静态代码块中初始化(如本例中的
a4);
静态属性初始化顺序
- 按照声明的顺序初始化;
Question 06
- 不可以说明吧,在
static A a1 = new A(1);static A a1 = new A(1);后添加;
1 | static { |
-
- 带有
static关键字的方法、变量、代码块:其他带有static关键字的方法、变量、代码块; - 不带有
static关键字的方法、变量、代码块:都可以 ;
- 带有
Question 07
不可以
Question 08
- 其构造函数被
private修饰,外部类无法直接通过new来创建; - 被
static修饰uniqueInstance在内存中只有一份; - 被
final修饰初始化之后uniqueInstance的指向不变; - 在该类被加载的时候创建;
Question 09
1 | public class test { |
Question 10
相关代码见\solution\Question10
Question 11
相关代码见\solution\Question11
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.









