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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡焱老师 中级黑马   /  2014-1-19 22:38  /  2104 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.构造方法与构造代码块的区别,以及其在代码中所在的位置  

2.构造代码块与构造方法运行的先后顺序

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

8 个回复

倒序浏览
一个类中可以定义多个构造方法,如果多个构造方法有共通的部分,那么这部分酒可以放入构造代码块
先运行构造代码块,然后才运行构造函数

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
构造代码块的执行顺序在构造方法的前面,一个类中多个构造函数以重载的形式存在时,可以把构造函数中相同的代码写在构造代码中,用来给对象初始化

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
1. 构造方法,是用来给类创建对象(实例化)时,给对应的对象初始化用的。比如你创建一个Person类,当你new Person() 的时候,想让这个对象拥有特定的姓名,年龄,身高等等,就需要在构造函数内对新建的对象进行属性初始化。
   构造代码块,是用来给这个类的所有对象进行统一初始化用的;用于给当前类的对象赋予共性的内容。比如人有不同的姓名,年龄,身高,但人都是会哭,会笑,会吃饭,这些共有的属性可以放在构造代码块中。

2. 构造代码块一定是优先于构造方法运行的

如果想看代码,毕老师的视频第5天第9集就讲的是构造代码块,你可以参考一下,很容易理解的一个概念。

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
第2问楼上已经回答,我补充一下第1问:
构造方法它是一个特殊方法,其名字和所对应的类的名字一致。而构造代码块不是一个方法,构造代码块只是一个用{ }括起来的语句块,其中多个构造函数中内容只是一个提取。
它们的位置如下代码所示:
  1. class Difference
  2. {
  3.      {  //这个一个构造函数的代码块,直接位于类中,其中语句要先初始化
  4.      }
  5.      public Difference()//这个是构造函数,其中语句后初始化
  6.      {
  7.      }
  8. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报 1 0
本帖最后由 透过生活 于 2014-1-20 08:56 编辑

构造代码块:给对象进行初始化,并且对象一建立就运行,优先于构造方法。
构造代码块;是给所有对象进行统一初始化,而构造方法是给想对应的对象初始化。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
构造函数用于给对象进行初始化;如果类里没有构造函数,系统会默认给该类添加一个空参数的构造函数
即:***(){}
构造代码块是给一个类的所有对象统一初始化,是不同对象共性的初始化内容。而构造函数是给对应的对象初始化。
建立一个类所有对象时,先执行构造代码块

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
1、内部类中是没有 构造代码块吧 ??
2、创建对象调用内部类会运行构造代码块吗??
回复 使用道具 举报
1. 构造方法与构造代码块的区别,以及其在代码中所在的位置?
(1)定义方式
构造方法是定义在类中的,函数名和类名相同,而且没有返回值;
构造代码块是定义在类中,没有函数名。
(2)作用
构造方法,是给指定的对象进行初始化的;
构造代码块,是给所有的对象进行初始化的。
(3)执行顺序
建立对象时,会先执行代构造码块,然后执行构造函数。
这个也很好理解,给所有对象都初始化之后,才会进行特定对象的初始化。
2. 构造代码块与构造方法运行的先后顺序?
参加问题1中的(3)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马