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

初始化块和构造方法的区别

在示例中我看不出初始化块和构造方法的区别,两对大括号中间的内容基本是一样的,怎样确定哪个是构造方法?是否是紧跟在后面的就是构造的,其他的就不是了呢

提问者:愿遂 2016-03-08 21:20

个回答

  • 蟠木不雕饰
    2016-03-08 21:54:42
    已采纳

    public class HelloWorld {

        

        String name; // 声明变量name

    String sex; // 声明变量sex

    static int age;// 声明静态变量age

        

        // 构造方法,                   构造函数的方法名一般和类重名,  HelloWorld()方法名

    public   HelloWorld     () { 

    System.out.println("通过构造方法初始化name");

    name = "tom";

    }

        

        // 初始化块             初始化块就是一对大括号,没有访问修饰符和方法名阿

    System.out.println("通过初始化块初始化sex");

    sex = "男";

    }

        

        // 静态初始化块                    static是关键字, 静态...也没有访问修饰符和方法名阿

      static     { 

    System.out.println("通过静态初始化块初始化age");

    age = 20;

    }

    静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。