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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

代码如下:
   
class Person{
      {
          System.out.println("i  am  coming");
       }
       Person(){
           System.out.println("Person  run");
      }
      Person(int  a){
           System.out.println("a="+a);
      }
}

当执行   Person  person=new Person();  时,运行结果是什么?

正确答案,    i am  coming
                     person  runing

解析:
        {
          System.out.println("i  am  coming");
       }
     这一部分 称为 构造代码块,
     作用:给对象 进行初始化,
     所以 说,new 对象时,它会 执行,且 优先于构造函数,

构造代码块与构造函数的区别:

   构造代码块:给所有对象统一初始化,
   构造函数:给对应的对象初始化,

11 个回复

倒序浏览
看不懂看不懂
回复 使用道具 举报
构造代码块是给类进行初始化
构造函数是给对象进行初始化
所以每次new出一个对象,构造代码块块就加载一次
回复 使用道具 举报
为啥答案里面有person  runing这个呢  不懂呢??
回复 使用道具 举报
构造代码开优先于构造方法执行
回复 使用道具 举报
构造代码块优于构造函数执行
回复 使用道具 举报
袁有福123 发表于 2015-11-27 22:52
为啥答案里面有person  runing这个呢  不懂呢??

呵呵哒,写错了,  是   Person run
回复 使用道具 举报
构造代码块这东西挺新鲜。见识了。
回复 使用道具 举报
wyasln 中级黑马 2015-11-28 11:05:04
9#
还好看过,基础得夯实
回复 使用道具 举报
谢谢楼主分享,又复习了一遍,不过楼主说得有点夸张了,不为人知......
回复 使用道具 举报
学习了。。。
回复 使用道具 举报
又複習了一遍,感謝分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马