package com.imooc;
public class Demo1 {
int num1;
int num2;
static int num3;
public Demo1(){
num1=91;
System.out.println("通过构造方法为变量num1赋值");
}
{
num2=74;
System.out.println("通过初始化块为变量num2赋值");
}
static{
num3=83;
System.out.println("通过静态初始化块为静态变量num3赋值");
}
public static void main(String[] args) {
Demo1 hello=new Demo1();
}
}
想问一下,Demo1 hello=new Demo1();不是定义hello对象吗?怎么就直接执行结果了?hello里也没有num1 num2 num3 啊?
首先当类被装载的时候 类的静态快代码最先被执行,之后执行构造方法,但是在执行构造方法内的代码之前先执行初始化代码块,初始化代码块执行完毕再执行构造方法里的代码
java在创建对象的时候,是会执行该类的构造方法,以及父类的构造方法的。
类名Demo01:public class Demo1 {和方法名Demo01:public Demo1(){!
注意这个重点