日期:2014-05-20  浏览次数:20695 次

100分求解蔡鸟问题。
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]   访问到指定的元素?谢谢大家了!

------解决方案--------------------
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个元 //素
} //这里调用刚增加的方法就返回指定元素
}
------解决方案--------------------
应该是

a.objs[5]
------解决方案--------------------
最好把域设为私有,比较符合面向对象思想。
------解决方案--------------------
1、 a[5] 这么访问a,a必须是个数组才行
例如:定义一个MyArray的数组MyArray[] a=new MyArray[20]
a[5]是访问a数组中的第六个元素
2、Object[] Objs = new Object[0];表明在MyArray类里,声明了一个Object类型的数组属性,这个Objs 只是MyArray类的一个属性,这个属性恰恰是数组类型。
------解决方案--------------------
你要的功能c#里面的索引器可以实现,但java里面好象就不行了,只能通过a.objs[5]的形式来访问的