标签:
1.以下代码为何无法通过编译?哪儿出错了?
原因:对象变量不能相等
2.当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。
3.静态初始化块的执行顺序。
如果定义初始化块时使用了static修饰符,则变成了静态初始化块。静态初始化块时类相关的,系统将在类初始化阶段执行静态初始化块,而不是在创建对象时才执行。
静态初始化块总是比普通初始化块先执行。与普通初始化块类似的是,系统在类初始化阶段执行静态初始化块时,不仅会执行本类的静态初始化块,而且还会一直上溯到java.lang.Object类,先执行java.lang.Object类中的静态初始化块,然后执行其父类的静态初始化块,最后才执行该类的静态初始化块。经过这个过程,才完成了该类的初始化过程。
4.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?
源代码:
package boke;
public class Student{
public static void main(String[] args){
Information a = new Information();
a.OutputInformation();
Information b = new Information();
b.OutputInformation();
} }
class Information{
static int num=0;
Information()
{ num++;
}
public void OutputInformation()
{
System.out.println("你已经创建了"+num+"个对象!");
}
}
标签:
原文地址:http://www.cnblogs.com/liang123222/p/4886989.html