CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

入门者小程序请教~~

楼主obliang(无影)2001-07-24 10:56:59 在 Java / J2SE / 基础类 提问

在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

相关问题

  • JAVA小程序入门问题
  • 初学者,一个小程序
  • 初学者问题,小程序出错,请问…
  • 初学者的小程序问题,帮忙看看
  • 开源发布一个小程序,供初学者学习。
  • 几个pascal的小程序,回者有分
  • 帮初学者看个小程序,谢谢热心人
  • 我有个小程序有个地方不理解,初学者,请多指教!
  • 大家快过来看看这个小程序!送分!来者有分!
  • 初学者的小程序显示不出来,谁帮我看一下

关键词

  • 数组
  • test
  • add

得分解答快速导航

  • 帖主:obliang
  • zh9625
  • hexiaofeng

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo