房天下 > 房天下问答 > 业主生活 > 其他
  • java 非常简单的。。。。

    我是java新手,模仿课本写了个程序,运行时出错,程序的功能是这样的:我定义一个带数组参数,且返回类型也为int型的数组,我想实现在调用这个方法并传入一个数组时,结果是这个数组逆向输出:public class Array{ public static int[] Demo(int[] para) { int[] var=new int[para.length]; for(int i=para.length-1;i>=0;i--) { var[para.length-i]=para[i]; } return var;//???这个return语句它返回的是什么?是数组还是运用?如果返回的是一个数组的运用,我觉得这句话一点作用都没起到 } public static void main(String[] args) { Array.Demo(new int[]{1,2,3}); }}程序运行结果: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at javaapplication2.SelectionSort.Demo(SelectionSort.java:19) at javaapplication2.SelectionSort.main(SelectionSort.java:26)Java Result: 1这个数组越界异常时怎么产生的,我纳闷了,我在定义并创建数组的时候没有实现给这个数组一个长度,怎么就莫名地出现越界异常呢?所以我的问题两个:一 是关于return 一个数组的,哪个好心人可不可以顺带给我点拨一下 return一个object的情况,我对return 数组,return 对象很感冒!其二就是越界的问题 谢谢

    提问者:ainin1999

    发布于2010-11-25

共1个回答
  • qfly323 丨Lv 0
    reutrn object有什么不可以理解的呢,就是返回了对象的引用啊,你这个程序确实存在越界问题 for(int i=para.length-1;i>=0;i--) { var[para.length-i]=para[i];这句话,当i=0时, var[para.length-i]的下标变成了para.length,这明显就是不对的嘛,长度为para.length的数组最大下标应该是para.length-1啊,所以你这句话应该改为var[para.length-i-1]=para[i];才对
    +1 2010-11-26 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。