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]的形式来访问的