黑马程序员技术交流社区

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

作者: 党传才    时间: 2012-3-28 18:39
标题: 关于构造方法的疑问?
通常,为属性赋值:
public Person(String name) {
this.name = name;
}
public Person(String name) {
this.setName(name);
}
哪个好些?eclipse生成的构造方法貌似是第一种(尽管有setter方法)。
作者: 鲍亚坤    时间: 2012-3-28 19:54
this.name = name;一般是用在类的内部
而this.setName(name);一般用于其它类调用这个类的情况
作者: 刘旭    时间: 2012-3-28 19:57
楼上的说的很对,但是我觉得在构造器中用this.setName(name);就是多此一举。另外,用this.name比this.setName(name);效率更高
作者: 孙国军    时间: 2012-3-28 20:14
如果所属的类中有setName(name)方法,可以使用this.setName(name)调用该方法,已提高程序的复用性

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


以上是我的个人见解,请各位大大多多指教

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




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