图形介绍
代码实例
package com.test.java;
/*
* 理解一:1.向前引用:在类加载之前先把类访问一遍
* 2.代码从上至下执行
* 3.创建对象 (加载 实例变量、 方法、代码块、构造方法)
*
* 理解二:1.先对类中的变量、方法 分配内存;(默认初始值)
* 2.代码从上至下执行
* 3.创建对象
* 总结: 上-->下 顺序加载静态的变量、方法、代码块、对象
* 如果加载到静态对象:上-->下 加载对象的实例变量、方法、代码块、构造函数(最后执行)
*/
public class Demo01 {
public static int k=0; // 静态变量
public static Demo01 s1=new Demo01("s1"); // 静态对象 (1) 加载实例 变量、方法、代码块、构造方法
public static Demo01 s2=new Demo01("s2"); // 静态对象 (2) 加载实例 变量、代码块、构造方法
public static int i=print("i"); // 静态变量 (调 print 静态方法) (3)加载静态变量
public static int n=99; // 静态变量
public int j=print("j"); // 实例变量 (调用 print 静态方法)
{
print("构造块"); // 实例代码块
}
static
{
print("静态块"); // 静态代码块(调用 print静态方法) (4) 加载静态代码块
}
public static int print(String s) // 静态方法
{ System.out.println("nihao");
System.out.println(++k+":"+s+"\ti="+i+"\tn="+n);
++n;
System.out.println("hahn="+n);
return ++i;
}
public Demo01(String s) // 带参构造
{ System.out.println("haohao");
System.out.println(++k+":"+s+"\ti="+i+"\tn="+n);
++i;
System.out.println("nimei="+i);
++n;
System.out.println("gunsn="+n);
}
public static void main(String[] args) {
new Demo01("init"); // 创建对象 (5) 创建对象 并加载实例 变量、代码块、构造方法
}
}
结果截图: