问答详情
源自:8-10 Java 中的 static 使用之静态初始化块

直接定义对象后,就执行了?不要定义方法吗?

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 啊?

提问者:慕数据3565510 2017-05-09 23:35

个回答

  • 谜之米
    2017-05-10 17:39:01
    已采纳

    首先当类被装载的时候 类的静态快代码最先被执行,之后执行构造方法,但是在执行构造方法内的代码之前先执行初始化代码块,初始化代码块执行完毕再执行构造方法里的代码

  • 点点客
    2017-05-10 00:07:33

    java在创建对象的时候,是会执行该类的构造方法,以及父类的构造方法的。

  • 浮尘落尽繁华梦
    2017-05-09 23:43:55

    类名Demo01:public class Demo1 {和方法名Demo01:public Demo1(){!

    注意这个重点