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 个回复

正序浏览
又複習了一遍,感謝分享
回复 使用道具 举报
学习了。。。
回复 使用道具 举报
谢谢楼主分享,又复习了一遍,不过楼主说得有点夸张了,不为人知......
回复 使用道具 举报
wyasln 中级黑马 2015-11-28 11:05:04
9#
还好看过,基础得夯实
回复 使用道具 举报
构造代码块这东西挺新鲜。见识了。
回复 使用道具 举报
袁有福123 发表于 2015-11-27 22:52
为啥答案里面有person  runing这个呢  不懂呢??

呵呵哒,写错了,  是   Person run
回复 使用道具 举报
构造代码块优于构造函数执行
回复 使用道具 举报
构造代码开优先于构造方法执行
回复 使用道具 举报
为啥答案里面有person  runing这个呢  不懂呢??
回复 使用道具 举报
构造代码块是给类进行初始化
构造函数是给对象进行初始化
所以每次new出一个对象,构造代码块块就加载一次
回复 使用道具 举报
看不懂看不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马