黑马程序员技术交流社区

标题: 关于构造方法 构造代码块 的疑问? [打印本页]

作者: 胡焱老师    时间: 2014-1-19 22:38
标题: 关于构造方法 构造代码块 的疑问?
1.构造方法与构造代码块的区别,以及其在代码中所在的位置  

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

作者: 孤独的天奇    时间: 2014-1-19 23:06
一个类中可以定义多个构造方法,如果多个构造方法有共通的部分,那么这部分酒可以放入构造代码块
先运行构造代码块,然后才运行构造函数
作者: panzhenglian    时间: 2014-1-19 23:11
构造代码块的执行顺序在构造方法的前面,一个类中多个构造函数以重载的形式存在时,可以把构造函数中相同的代码写在构造代码中,用来给对象初始化
作者: dapeng111    时间: 2014-1-19 23:23
第2问楼上已经回答,我补充一下第1问:
构造方法它是一个特殊方法,其名字和所对应的类的名字一致。而构造代码块不是一个方法,构造代码块只是一个用{ }括起来的语句块,其中多个构造函数中内容只是一个提取。
它们的位置如下代码所示:
  1. class Difference
  2. {
  3.      {  //这个一个构造函数的代码块,直接位于类中,其中语句要先初始化
  4.      }
  5.      public Difference()//这个是构造函数,其中语句后初始化
  6.      {
  7.      }
  8. }
复制代码

作者: 透过生活    时间: 2014-1-20 08:55
本帖最后由 透过生活 于 2014-1-20 08:56 编辑

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

作者: 姬运涛    时间: 2014-1-20 09:13
构造函数用于给对象进行初始化;如果类里没有构造函数,系统会默认给该类添加一个空参数的构造函数
即:***(){}
构造代码块是给一个类的所有对象统一初始化,是不同对象共性的初始化内容。而构造函数是给对应的对象初始化。
建立一个类所有对象时,先执行构造代码块
作者: 胡焱老师    时间: 2014-1-20 12:56
1、内部类中是没有 构造代码块吧 ??
2、创建对象调用内部类会运行构造代码块吗??
作者: 三十而立    时间: 2014-1-20 13:31
1. 构造方法与构造代码块的区别,以及其在代码中所在的位置?
(1)定义方式
构造方法是定义在类中的,函数名和类名相同,而且没有返回值;
构造代码块是定义在类中,没有函数名。
(2)作用
构造方法,是给指定的对象进行初始化的;
构造代码块,是给所有的对象进行初始化的。
(3)执行顺序
建立对象时,会先执行代构造码块,然后执行构造函数。
这个也很好理解,给所有对象都初始化之后,才会进行特定对象的初始化。
2. 构造代码块与构造方法运行的先后顺序?
参加问题1中的(3)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2