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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 伍淑江 中级黑马   /  2013-3-14 22:04  /  1630 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄玉昆 于 2013-3-16 13:34 编辑

直接赋值和通过构造赋值的区别?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

倒序浏览
构造函数是用来对对象进行初始化的。默认第一行为this(),会先实例化成员属性。由外界,或者内部来对属性赋值。。。
可以建立外部对象,对变量进行赋值,直接赋值的话,太局限了 .. 代码多的时候,需要用到这个变量了,总不能回到最开始处,手动去改,。。。

点评

如果问题已解决,请将分类改为“已解决”,谢谢  发表于 2013-3-15 08:12

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
  效果上没有区别,都是赋值。但是,构造赋值是在对象初始化的时候调用的,而直接赋值一般在其它地方都可以,并且在构造赋值里也是包含直接赋值。
回复 使用道具 举报
(1)当一个类中没有定义构造函数时,那么系统就会默认给该类加入一个空参数的构造函数。
(2)当在类中自定义了构造函数时,系统不再构造默认构造函数。
(3)构造函数和一般函数在写法和运用上都不同
构造函数是在对象一建立就开始运行,给对象初始化,而一般方法是对象调用才开始执行,是给对象添加对象具备的功能。
一个对象建立,构造函数只运行一次,而一般函数可以调用多次。
什么时候调用构造函数?
当分析事物时,该事物存在具备一些特性或者行为,那么就将这些内容定义在构造函数中。
回复 使用道具 举报
直接赋值和通过构造赋值的区别?

区别:1. 通过构造函数赋值可以再创建对象的时候进行初始化,并且再但创建多个对象的时候,可以给对象不同的初始化值。
      2.直接赋值要优先于构造方法赋值。构造赋值可以对直接赋值进行修改。
注意:在多线程的时候,直接赋值要更安全,不用去管线程同步的安全问题,
       但构造方法进行赋值可能会出现安全问题,必须进行安全处理。(例如单例模式中的,饿汉式和懒汉式。)

评分

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

查看全部评分

回复 使用道具 举报
如果是实体类你
里面有很多属性,你要直接复制,那么好,你增删改的时候 没有set的字段就会有出始值,而且get的时候拿到的值永远不是空,除非你set空了。
这样一来你判断某个字段为不为空就没有意义了!所以实体类一般都不直接复制,
构造复制和set类似!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马