public class MyArray {
Object[] Objs = new Object[0];
   public MyArray(){
        //构造函数,构造一个Ary[]对象包含0个元素
      Objs=new Object[0];    }
    //重载构造函数,构造一个有i个元素的Ary[]对象
    public MyArray(int i){
       Objs=new Object[i];
       for (int j = 0; j< Objs.length ; j++) {
           Objs[j] = 0;
       }
    }
    //重载构造函数,构造一个有i个元素的Ary[]对象并用a初始化每个元素
    public MyArray(int i,Object a){
       Objs=new Object[i];
        for (int j = 0; j< Objs.length ; j++) {
            Objs[j]=a;
        }
    }
}// public static void main(String[] args) {
        MyArray a=new MyArray(20,"aaaaaa");
        System.out.println(a[5]);//怎样做才能够这样访问到第5个元  //素
}有没有什么方法用 a[5] 访问到指定的元素?谢谢大家了!

解决方案 »

  1.   

    MyArray a=new MyArray(20,"aaaaaa");你这里定义的不是数组,
    根据你System.out.println(a[5])说明你想访问一个数组。
    public class MyArray 
    {
    Object[] Objs = new Object[0];
    public MyArray()
    {
    //构造函数,构造一个Ary[]对象包含0个元素
    Objs=new Object[0];
    }
    //重载构造函数,构造一个有i个元素的Ary[]对象
    public MyArray(int i)
    {
    Objs=new Object[i];
    for (int j = 0; j< Objs.length ; j++) 
    {
    Objs[j] = 0;
    }
    }
    //重载构造函数,构造一个有i个元素的Ary[]对象并用a初始化每个元素
    public MyArray(int i,Object a)
    {
    Objs=new Object[i];
    for (int j = 0; j< Objs.length ; j++) 
    {
    Objs[j]=a;
    }
    }
    public Object getValue(int pos)
    {
    return Objs[pos];
    }//增加一个返回的方法。
    public static void main(String[] args) 
    {
    MyArray a=new MyArray(20,"aaaaaa");
    System.out.println(a.getValue(5));//怎样做才能够这样访问到第5个元 //素
    }                                         //这里调用刚增加的方法就返回指定元素
    }
      

  2.   

    1、 a[5] 这么访问a,a必须是个数组才行
         例如:定义一个MyArray的数组MyArray[] a=new MyArray[20]
         a[5]是访问a数组中的第六个元素
    2、Object[] Objs = new Object[0];表明在MyArray类里,声明了一个Object类型的数组属性,这个Objs 只是MyArray类的一个属性,这个属性恰恰是数组类型。
      

  3.   

    你要的功能c#里面的索引器可以实现,但java里面好象就不行了,只能通过a.objs[5]的形式来访问的
      

  4.   

    通过a.objs[5]的形式来访问應該是可以的
      

  5.   

    你只是提供了属性的setter接口,没有提供其getter接口~1,public Object[] getObjs(){
        return Objs;
    }
    2,public Object getObjs(int pos){
        if(Objs.length <=0 || pos < 0 || Objs.length <= pos){
            return null;
        }
        return Objs[pos];
    }
      

  6.   

    你的类中增加一个方法:
    private Object getObjs(int i){
        return Objs[i];
    }
    看看这样可以吗?
      

  7.   

    //这样做就能够访问到第5个元素了public class MyArray {
    Object[] Objs = new Object[0];
       public MyArray(){
            //构造函数,构造一个Ary[]对象包含0个元素
          Objs=new Object[0];    }
        //重载构造函数,构造一个有i个元素的Ary[]对象
        public MyArray(int i){
           Objs=new Object[i];
           for (int j = 0; j< Objs.length ; j++) {
               Objs[j] = 0;
           }
        }
        //重载构造函数,构造一个有i个元素的Ary[]对象并用a初始化每个元素
        public MyArray(int i,Object a){
           Objs=new Object[i];
            for (int j = 0; j< Objs.length ; j++) {
                Objs[j]=a;
            }
        } public static void main(String[] args) {
            MyArray a=new MyArray(20,"aaaaaa");
            System.out.println(a.Objs[4]);//怎样做才能够这样访问到第5个元  //素
    }
    }
      

  8.   

    看来也只有这样了,谁让java没有操作符重载呢。
    谢谢大家了!