在一个java类中,构造函数能否调用this.set()方法?
例如,一般情况下,类Test的代码如下:
class Test(){
private String testStr;
public Test(String testStr){
this.testStr = testStr;
} public void setTestStr(String testStr){
this.testStr = testStr;
}
public String getTestStr(){
return this.testStr;
}
}能否写成:
class Test(){
private String testStr;
public Test(String testStr){
this.setTestStr(testStr);
}
public void setTestStr(String testStr){
this.testStr = testStr;
}
public String getTestStr(){
return this.testStr;
}
}为什么?有什么区别?谢谢
例如,一般情况下,类Test的代码如下:
class Test(){
private String testStr;
public Test(String testStr){
this.testStr = testStr;
} public void setTestStr(String testStr){
this.testStr = testStr;
}
public String getTestStr(){
return this.testStr;
}
}能否写成:
class Test(){
private String testStr;
public Test(String testStr){
this.setTestStr(testStr);
}
public void setTestStr(String testStr){
this.testStr = testStr;
}
public String getTestStr(){
return this.testStr;
}
}为什么?有什么区别?谢谢
解决方案 »
- 文件存储乱码问题
- JTextPange setPage()加载html后如何控制滚动条
- 使用1-9 这9 个数字填充一个3X3 的数组,要求输出所有可能的情况。
- Java运行时的Class Load问题
- 求chm格式的中文servlet api?能否发一个
- 求助啦~~为什么点击其中的按钮都没反应~~
- JAVA串口访问技术?
- 大家近来看一下,有关接口的代码。
- 大哥哥们,怎么在applet里面添加打开一个特定地址的网页的代码啊?
- 各位下午去面试Java程序员, 有什么忠告和注意事项,可以提供一些,多谢了,小弟感激不尽
- 求各位高手给我个用setCellRenderer(ListRenderer renderer)的例子,高分悬赏。
- 连接数据库的删除按钮,请前辈们赐教!
楼主【icecreamchen】截止到2008-07-16 11:58:17的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
setTestStr(testStr);
}
直接这样不行吗 反正你是想在构造函数里调用你的setTestStr方法 是吗
噢,明白了,和happystarting说的一样,局限在于:构造函数受setTestStr方法体的影响.
谢谢
this.testStr = testStr;
} 构造方法你只是想给testStr赋值,但setTestStr(String testStr)还可以做其它事,当想改变方法的具体实现时可能会引入一些其它的东西,如其它的变量,而这些变量并不需要它在构造方法被初始化,还有可能方法中新加的会引起BUG,如:在构造方法中又多初始化了一个变量testStr1,也方法setTestStr(String testStr)用到了testStr1
其实我试过简单示例了,知道这两种做法的结果一样,因此才会疑惑,既然这样做没什么区别,为什么我们常见到的是用参数直接初始化而不是调用set初始化.
经过大家讨论才知道区别.其实我多想一下应该就能明白的.呵,谢谢楼上的.
其实我觉得有时候一根筋地朝一个方向想问题会浪费很多时间,拿出来讨论讨论可能快速获取答案.
反应敏捷的人不一定博学,博学的人不一定什么问题都是自己想出来的.