Object args[]={k.getKname(), k.getKstus(),k.getCdate()};
Stu[] s=new Stu[10];这2个都是构造数组的  有什么区别吗为什么第一个不能这样写呢 Object[] args={k.getKname(), k.getKstus(),k.getCdate()};
 

解决方案 »

  1.   

    两种都是可以, 有可能是这样的:
    你把两句写到一起了,导致了变量重了,你把下面的args改成别的试试!!
      

  2.   

    两种写法JAVA都支持,而且完全一样
      

  3.   

    貌似是:
    第一个是直接创建的!
    第二个先在栈中找“s"如果没有的话 直接压入 然后在创建数组 然后把s指向数组!
    恩....新建string 是这么个流程  数组 理论上应该差不多吧!
      

  4.   

    为什么第一个不能这样写呢 Object[] args={k.getKname(), k.getKstus(),k.getCdate()};
    可以的啊,我试过了
      

  5.   

    Object args[]={k.getKname(), k.getKstus(),k.getCdate()};
    Object[] args={k.getKname(), k.getKstus(),k.getCdate()};
    是一样的,他们存的都是Object类型
      

  6.   


    数组声明:
    Object[] args和Object args[]这两种声明方式相同对于构造数组的方法:
    Object args[]={k.getKname(), k.getKstus(),k.getCdate()};
    它完成的是:
    args = new Object[3];
    args[0] = k.getKname();
    ……
    而Stu[] s=new Stu[10];
    完成的是,定义一个长度为10的数组,而且数组中的每个位置都对应null
      

  7.   

    Object[] args={k.getKname(), k.getKstus(),k.getCdate()};可以这样写呀,而且一般都这样写。
      

  8.   

    你的main方法 应该也是args....
          重名的问题。   再要不就是你的有一个get方法无返回
      

  9.   

    两种方法的确是都可以的。怎么会不行呢。你是不是真的在Main方法里面哦。。args
      

  10.   

    区别就是第一种定义和赋值一起写了
    第二种是只定义并为s分配了内存,并没有赋值,s的元素都是null第一个可以那样写,效果是一样的,即 Object[] a 和 Object a[]是一个意思,写法上个人喜好选择不同而已String[] a = {"a", "b", "c"}; //定义并赋值
    String[] b = new String[]{"a", "b", "c"}; //定义并赋值
    String[] c = new String[3]; //定义并分配空间
    for (int i=0; i<c.length; i++) c[i] = ""+i; //通过循环对每个元素赋值
    String[] d; //只是定义,也没分配空间
      

  11.   

    恩 谢谢大家了明白了 继续努力学习java中