普通类初始化那点事

来源:互联网 发布:java 整型数组 编辑:程序博客网 时间:2024/06/11 15:35

1、类是什么?

答:简单继续粗暴起来,类型的同义词就是类啦,哈哈哈哈哈。类是实例对象的模版、蓝图,类是自建的数据结构(我更喜欢叫对象组合),类可以生成无数个对象。简单粗暴。


2、什么是初始化顺序?

答:类里的成员:静态成员、普通成员。让我们看看一个类加载到jvm时,它怎么处理它的成员初始化顺序


3、上酸菜…………例子………………

public class Bird {static int a = 5; static String name;public Bird() {super();System.out.println("构造方法 public Bird()");}Inter myInter = new Inter();static StaInter staInter = new StaInter();{System.out.println("普通代码块{ }");}static {System.out.println("静态代码块 static { }");}public static void main(String args[]) {System.out.println("void main(String args[])");new Bird();}private static class StaInter{  //静态内部类,因为是作为外部类的静态成员,所以不需要外部类的实例对象就可使用,好处是它可以任意使用外部类的静态成员(字段、方法)StaInter() {super();System.out.println("静态内部类构造方法 StaInter()");}}private class Inter {Inter() {System.out.println("普通内部类构造方法 Inter()");}}}

输出结果:

静态内部类构造方法 StaInter()静态代码块 static { }void main(String args[])   //jvm会在类加载进去后,调用入口main方法普通内部类构造方法 Inter()普通代码块{ }构造方法 public Bird()


4、总结


a、首先初始化静态成员(静态变量、静态代码块)。

b、接下来是普通成员(实例变量、普通代码块)。

c、最后是构造方法。

注意:a、b两种同级别成员各自按照在代码中的书写顺序,决定谁先初始化。例如:有三个静态变量(称a、b、c)谁写在前,谁就先初始化。


0 0