黑马程序员技术交流社区
标题:
【已解决】引用地址传递问题,输出结果为空
[打印本页]
作者:
黎健东
时间:
2012-8-21 17:51
标题:
【已解决】引用地址传递问题,输出结果为空
本帖最后由 黎健东 于 2012-8-21 20:57 编辑
package com.lee.calc.test007;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Num p = new Num();
p.plus();
//我的本意是,往plus(String result)这个方法传进去decimalResult,intResult两个不同的参数
//并用decimalResult,intResult这两个分别new一个对象,然后往这个对象里边存值
//当读取decimalResult,intResult这两个的值时,结果是空
//于是猜测是用result new了对象,而没有使用decimalResult,intResult new,所以空
//如何才能实现传进去的是decimalResult,intResult,也是用decimalResult,intResult,而不是用result实例化对象呢?
//难道不是把decimalResult这个的地址作为引用传递给result,result 是使用decimalResult引用地址new对象吗?
System.out.println(p.getDecimalResult());
System.out.println(p.getIntResult());
}
}
class Num{
//小数结果
private StringBuilder decimalResult;
//整数结果
private StringBuilder intResult;
//是否包含小数
private boolean isDecimal = true;
//是否到整数了
private boolean isInt;
public Num() {
// TODO Auto-generated constructor stub
}
public void plus(){
if(isDecimal){
plus(decimalResult);
}
plus(intResult);
}
private void plus(StringBuilder result){
result = new StringBuilder();
result.append("10000");
}
public StringBuilder getDecimalResult() {
return decimalResult;
}
public StringBuilder getIntResult() {
return intResult;
}
}
作者:
唐杨老师
时间:
2012-8-21 19:26
你在plus内部实例化的对象,在方法结束后就释放掉了,result添加的值也并没有传给成员变量,
按照下边的改一下吧.
class Num {
private StringBuilder decimalResult = new StringBuilder();;
// 整数结果
private StringBuilder intResult = new StringBuilder();;
// 是否包含小数
private boolean isDecimal = true;
// 是否到整数了
public Num() {
}
public void plus() {
if (isDecimal) {
plus(decimalResult);
}
plus(intResult);
}
private void plus(StringBuilder result) {
// result = new StringBuilder();
result.append("10000");
}
public StringBuilder getDecimalResult() {
return decimalResult;
}
public StringBuilder getIntResult() {
return intResult;
}
}
复制代码
作者:
黎健东
时间:
2012-8-21 20:57
唐杨 发表于 2012-8-21 19:26
你在plus内部实例化的对象,在方法结束后就释放掉了,result添加的值也并没有传给成员变量,
按照下边的改一下 ...
原来如此,哈哈,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2