当前位置: 代码迷 >> Java相关 >> 数组如何通过构造初始化
  详细解决方案

数组如何通过构造初始化

热度:152   发布时间:2007-04-28 10:41:55.0
数组如何通过构造初始化

请教一个基础问题,类中定义一个数组,在构造函数中初始化,请问应该怎么写,如何传参。最好能给写个简单的例子,THANK YOU

搜索更多相关的解决方案: 构造  

----------------解决方案--------------------------------------------------------

程序代码:

#include <iostream.h>
#include <stdlib.h>

class Array
{
private:
int* arr;
int size;
public:
Array();
Array(int n);
int Length();
int Add(int i,int value);
};

Array::Array()
{}

Array::Array(int n)
{
size = n;
arr = new int[size];
}

int Array::Length()
{
return Array::size;
}

int Array::Add(int i,int value)
{
if(i >= Length())
{
cout<<\"下标越界!\";
return 0;
}
arr[i] = value;
return 1;
}

int main()
{
Array* a1 = new Array(8);
for(int i = 0;i<a1->Length();i++)
{
int m = rand()%100;
a1->Add(i,m);
}
return 0;
}

[此贴子已经被作者于2007-4-28 11:19:26编辑过]


----------------解决方案--------------------------------------------------------

晕啊,感谢大哥,
我求的JAVA代码


----------------解决方案--------------------------------------------------------

没注意看是发在了哪里了
我没有JAVA开发包,我给你用J#写了一个,你改下输入输出就可以了,我还是第一次写J#代码,她和C#太像了,基本不用学

程序代码:

package ConsoleApplication2;

public class IntArray
{
private int[] arr;
private int size;
public IntArray()
{}

public IntArray(int n)
{
this.size = n;
this.arr = new int[size];
}
public int Length()
{
return size;
}

public int Add(int i,int value)
{
if( i>= this.Length())
{
System.Console.WriteLine(\"下标越界!\");
return 0;
}
this.arr[i] = value;
return 1;
}

public void Display()
{
for(int i=0;i<this.Length();i++)
{
System.Console.Write(this.arr[i]);
System.Console.Write(\" \");
}
System.Console.WriteLine();
}

public static void main()
{
IntArray intarray = new IntArray(8);
System.Random rand = new System.Random();

for(int i=0;i<intarray.Length();i++)
{
int a = rand.Next(0,20);
intarray.Add(i,a);
}
intarray.Display();
System.Console.ReadLine();
}
}

[此贴子已经被作者于2007-4-28 16:49:26编辑过]


----------------解决方案--------------------------------------------------------
thank you very much!!!!!!!!!!!!!!!!!!!!!!!!!!!
----------------解决方案--------------------------------------------------------
应该把缺省的那个构造函数该成
程序代码:

public IntArray()
{
this.size = 8;
this.arr = new int[size];
}

用户不给定长度就让它new 8个,你也可以把程序改进成按需分配的数组,下标越界后用一个临时数组装好数据,把数组new大一些,然后有倒回去,里面的数组再改用范型的话就是一个什么都能装的按需分配的数组了

----------------解决方案--------------------------------------------------------
泛型不是什么都能装的吧 只能装<>里面定义的元素吧 用object是什么都能装进去的吧 
----------------解决方案--------------------------------------------------------
object就是泛型
----------------解决方案--------------------------------------------------------
啊?object就是泛型啊 那LinkList&lt;String&gt; 尖括号括起来的是什么啊,可以定义泛型属性是object,object是对象的超类吧
----------------解决方案--------------------------------------------------------
你说得对
----------------解决方案--------------------------------------------------------
  相关解决方案