入门者小程序请教~~
在test这个类中有add方法,我希望将一致的两个数组相加,返回一个数组 编译通过,但在justtest.java中的test tc = ta.add(tb);处运行不过去!请帮忙!怎么写这个类!多谢!
//test.java
class test
{
public test(double[] a)
{
item =a;
}
public test add(test b)
{
for (int i=0;i<this.item.length;i++)
{
asum[i] = item[i]+b.item[i];
}
return new test(asum);
}
public double sum()
{
for(int i=0;i<item.length;i++)
{
ssum=ssum+item[i];
}
return ssum;
}
private double[] item;
private double[] asum;
private double ssum=0;
}
//justtest.java
public class justtest
{
public static void main(String[] args)
{
test ta = new test(x);
test tb = new test(new double[] {4,5,6});
test tc = ta.add(tb);//出错
s = tc.sum();
System.out.println(s);
}
private static double[] x={1,2,3};
private static double s;
}
问题点数:40、回复次数:7Top
1 楼zh9625(短笛)回复于 2001-07-24 11:32:16 得分 30
add中的asum没有分配空间。
在for前加上这一句:
asum = new double[this.item.length];Top
2 楼hexiaofeng(java爱好者)回复于 2001-07-24 11:52:18 得分 10
private double[] asum = new double[3];Top
3 楼hexiaofeng(java爱好者)回复于 2001-07-24 12:04:56 得分 0
zh9625(短笛) 说得对
或
asum = new double[item.length];在这可不用thisTop
4 楼zh9625(短笛)回复于 2001-07-24 15:24:28 得分 0
谁说不能用this,我都运行通过了Top
5 楼obliang(无影)回复于 2001-07-24 15:36:04 得分 0
在这里可以用也可以不用,不过,如果我将 public test add(test b)
重写成 public test add(test a,test b),能帮我调试出来吗?谢谢!
(我没调试过通过)
Top
6 楼zh9625(短笛)回复于 2001-07-24 20:56:14 得分 0
public test add(test a,test b) 改成这样调不通吗? 怎么会呢?
我试通了,看看合不合你意:
public test add(test a ,test b){
asum = new double[a.item.length];
for (int i=0;i<a.item.length;i++){
asum[i] = a.item[i]+b.item[i];
}
return new test(asum);
}
调用:test tc = ta.add(ta,tb);Top
7 楼obliang(无影)回复于 2001-07-25 14:36:59 得分 0
多谢,我钻进死胡同了!~呵呵Top




