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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高境 金牌黑马   /  2012-12-20 10:24  /  1440 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

都知道构造函数和构造代码块都是给对象进行初始化的,那么,他们的区别是什么呢?

评分

参与人数 2技术分 +1 黑马币 +20 收起 理由
Fateˉ似命守护 + 20 赞一个!
奋斗的青春 + 1 神马都是浮云

查看全部评分

7 个回复

倒序浏览
构造函数是可以重载的,也就是说,一个类中可以有多个构造函数,只要他们的参数列表不一样即可,因此就有了局限性,就是只能给特定的对象,也就是和某个构造函数符合,就用哪一个构造函数。
而构造代码块,是可以给任何对象初始化,没有局限性!OK?
回复 使用道具 举报
构造代码块是对对象统一初始化,对象一建立就运行。而构造函数是对对应的对象进行初始化
回复 使用道具 举报
构造代码块。
    作用:给对象进行初始化。
    对象一建立就运行,而且优先于构造函数执行。
    和构造函数的区别:
    构造代码块是给所有对象进行统一初始化
    构造函数是给对应对象初始化

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
构造代码块是给所有对象进行统一初始化的
构造函数是给对应对象初始化的
并且构造代码块也是在对象一建立就运行,而且优先于构造函数执行。

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
构造函数是给指定的对象进行初始化的,而构造代码块能给所有的对象进行初始化。如:
class Person
{
        String name;
        int age;
        {
                System.out.println("cry");//构造代码块用于给所有对象进行初始化
        }
        Person(String name)//此构造函数只能给zhangshan进行初始化
        {
                this.name = name;
        }
        Person(String name,int age)//此构造函数只能给zhangshan 20进行初始化
        {
                this.name = name;
                this.age = age;
        }
       
}
class  Demo
{
        public static void main(String[] args)
        {
                Person p = new Person("zhangshan");
                Person p1 = new Person("lisi",20);
        }
}

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 很给力!

查看全部评分

回复 使用道具 举报
构造代码块:用于给对象初始化的,只要建立对象该部分就会被执行,且优先于构造函数。
回复 使用道具 举报
1.构造函数和一般函数的区别:
       首先是功能不同:
             构造函数是用来给对象初始化用,
            一般函数是用来封装某些功能用的。
        被调用的方式不同
           构造函数是在对象创建时,就会自动调用与之对应的构造函数
           一般函数是在对象创建后,需要该功能时才会被调用。
        被调用的次数不同
            构造函数在对象创建时只调用一次
           一般函数却是可以重复调用,想用几次都可以。
2.构造函数 与构造代码块儿区别
     构造代码块是给所有对象进行统一初始化,定义不同对象共性初始化内容:比如每个孩子生出来都会哭。
而构造函数是给对应的对象初始化。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马