A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© _Water 中级黑马   /  2014-4-2 15:17  /  938 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.构造代码块:
class Person {  
    private String name;  
    private int age;  
    //构造代码块,给所有对象初始化用  
    {  
        System.out.println("person code run");  
    }  
    //构造函数,给对应对象初始化用  
    Person(String name, int age) {  
        this.name = name;  
        this.age = age;  
    }  
}  
作用:
给对象进行初始化,对象一建立就运行,而且优先于构造函数执行。

和构造函数的区别:
构造代码块是给所有对象进行统一初始化,而构造函数是给对应对象初始化;
构造代码块中定义的是不同对象共性的初始化内容。

2.静态代码块:
class Person {  
    private String name;  
    private int age;  
    //静态代码块,给类初始化用  
    static{  
        System.out.println("static code run");  
    }  
    //构造代码块,给所有对象初始化用  
    {  
        System.out.println("person code run");  
    }  
    //构造函数,给对应对象初始化用  
    Person(String name, int age) {  
        this.name = name;  
        this.age = age;  
    }  
}  
特点:
随着类的加载而执行,只执行一次,并优先于主函数。

作用:
用于给类进行初始化。
eg:class StaticCode{  
    StaticCode(){                     
        System.out.print("b,");  
    }  
    static {                     //静态代码快,给类初始化  
        System.out.print("a,");  
    }  
    {                            //构造代码块,给对象初始化  
        System.out.print("c,");  
    }  
    StaticCode(int x) {          //构造函数,给对应对象初始化  
        System.out.print("d,");  
    }  
}  
public class java06_06 {  
    public static void main(String[] args) {  
        new StaticCode(4);  
    }  
}  
//执行结果 a,c,d,

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

2 个回复

倒序浏览
请问你的问题在哪里?你的这篇帖子应该归属于“论坛分享”
回复 使用道具 举报
1453149997 发表于 2014-4-2 16:59
请问你的问题在哪里?你的这篇帖子应该归属于“论坛分享”

好的,谢谢提醒
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马