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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 党传才 中级黑马   /  2012-3-28 18:39  /  2193 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

通常,为属性赋值:
public Person(String name) {
this.name = name;
}
public Person(String name) {
this.setName(name);
}
哪个好些?eclipse生成的构造方法貌似是第一种(尽管有setter方法)。

6 个回复

正序浏览
rchm 黑马帝 2012-3-28 20:46:44
7#
get和set方法一般是为了在类外使用的,在自己类的内部,能用属性何必去用方法呢,你不觉的影响效率吗!
回复 使用道具 举报
第一种的话,在构造函数中直接初始化,是没问题的。
但是不方便以后的使用。安全系数低。
第二种,专门写了设置方法,可读性高,安全性高。方便以后维护操作。
回复 使用道具 举报
在一个类中,通常会提供构造方法和get和set方法,用Eclipse自动生成的构造方法都是
public Person(String name) {
this.name = name;
}
这种的,这种构造方法都是public访问修饰,而内部的属性信息是不能让外界知道的,所以一般用private修饰,但是会提供public的get和set方法,而这种构造函数主要是要让用户在实例化该对象时,必须要给他指定的属性赋值,因为是在同一个类中访问本类的属性,所以自我感觉没有必要在调用set方法赋值,直接把用户传递的值赋值给指定属性更好,set和get方法主要是用于外部类给此类属性赋值时调用的方法。
回复 使用道具 举报
如果所属的类中有setName(name)方法,可以使用this.setName(name)调用该方法,已提高程序的复用性

如果所属的类中没有setName(name)方法,那么就没有必要专门去定义一个setName(name)方法。


以上是我的个人见解,请各位大大多多指教
回复 使用道具 举报
楼上的说的很对,但是我觉得在构造器中用this.setName(name);就是多此一举。另外,用this.name比this.setName(name);效率更高
回复 使用道具 举报
this.name = name;一般是用在类的内部
而this.setName(name);一般用于其它类调用这个类的情况
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马