动手动脑和课后作业

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+"个对象!");

}

}

原文地址:https://www.cnblogs.com/liang123222/p/4886989.html