对象数组?对象数组的概念
大家好,今天小编来为大家解答对象数组这个问题,对象数组的概念很多人还不知道,现在让我们一起来看看吧!
JAVA中怎么初始化对象数组
你这个试试对对象数组的一个声明,并没有示例话,所以会报空指针异常
这个数组对象都是现用现初始化的
Animals [] an=new Animals[5];//这只是个对象类型数组的声明
用的时候需要
for(int i=0;i<5;i++)
an[i]=new Animals();
这样你明白了吧
你前面的那个光声明了数组,但是没有调用Animals的构造函数,你数组里的每个元素都是一个对象,使用前必须要先实例化
如果你只是用户输入长度,
Animals [] an=new Animals[n];
声明时是可以用变量的
或者你直接Animals [] an=new Animals[100];定义一个大数组,要用的时候再new Animals();实例化,或者用LinkedList<Animals> an=new LinkedList<Animals>();定义一个动态数组
对象数组的概念
(1)类
具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。
类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
(2)类的结构
在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。
①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。
②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。
(3)对象
对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
(4)对象的状态和行为
对象具有状态,一个对象用数据值来描述它的状态。
对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中
(5)消息和方法
对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。
c#怎么定义对象数组
一、一维:
int[] numbers= new int[]{1,2,3,4,5,6};//不定长
int[] numbers= new int[3]{1,2,3};//定长
二、多维
int[,] numbers= new int[,]{{1,2,3},{1,2,3}};//不定长
int[,] numbers= new int[2,2]{{1,2},{1,2}};//定长
三、例子
A:int[] mf1=new int[6];
//注意初始化数组的范围,或者指定初值;//包含6个元素的一维整数数组,初值1,2,3,4,5,6
int[] mf2=new int[6]{1,2,3,4,5,6};
B://一维字符串数组,如果提供了初始值设定项,则还可以省略 new运算符
string[] mf3={"c","c++","c#"};
C://一维对象数组
Object[] mf4= new Object[5]{ 26, 27, 28, 29, 30};
D://二维整数数组,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4
int[,] mf5=new int[,]{{1,2},{3,4}};
E://6*6的二维整型数组
int[,] mf6=new mf[6,6];
四、取得数组元素个数:
int b;
b= sizeof(a)/sizeof(*a);
c#字符串及数组操作
2007-12-12 17:53字符串操作(取当前时间)
string time=convert.tostring(DateTime.Today).split( new char []{''}); textbox1.text=time[0];以空格作为分界点;
数组概述
C#数组从零开始建立索引,即数组索引从零开始。C#中数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。
声明数组时,方括号([])必须跟在类型后面,而不是标识符后面。在 C#中,将方括号放在标识符后是不合法的语法。
int[] table;// not int table[];
另一细节是,数组的大小不是其类型的一部分,而在 C语言中它却是数组类型的一部分。这使您可以声明一个数组并向它分配 int对象的任意数组,而不管数组长度如何。
int[] numbers;// declare numbers as an int array of any size
numbers= new int[10];// numbers is a 10-element array
numbers= new int[20];// now it's a 20-element array
声明数组
C#支持一维数组、多维数组(矩形数组)和数组的数组(交错的数组)。下面的示例展示如何声明不同类型的数组:
一维数组:int[] numbers;
多维数组:string[,] names;
数组的数组(交错的):byte[][] scores;
声明数组(如上所示)并不实际创建它们。在 C#中,数组是对象(本教程稍后讨论),必须进行实例化。下面的示例展示如何创建数组:
一维数组:int[] numbers= new int[5];
多维数组:string[,] names= new string[5,4];
数组的数组(交错的):byte[][] scores= new byte[5][]; for(int x= 0; x< scores.Length; x++){scores[x]= new byt[4];
}
还可以有更大的数组。例如,可以有三维的矩形数组:int[,,] buttons= new int[4,5,3];
甚至可以将矩形数组和交错数组混合使用。例如,下面的代码声明了类型为 int的二维数组的三维数组的一维数组int[][,,][,] numbers;
初始化数组
C#通过将初始值括在大括号({})内为在声明时初始化数组提供了简单而直接了当的方法。下面的示例展示初始化不同类型的数组的各种方法。
注意如果在声明时没有初始化数组,则数组成员将自动初始化为该数组类型的默认初始值。另外,如果将数组声明为某类型的字段,则当实例化该类型时它将被设置为默认值 null。
一维数组
int[] numbers= new int[5]{1, 2, 3, 4, 5};
string[] names= new string[3]{"Matt","Joanne","Robert"};
可省略数组的大小,如下所示:
int[] numbers= new int[]{1, 2, 3, 4, 5};
string[] names= new string[]{"Matt","Joanne","Robert"};
如果提供了初始值设定项,则还可以省略 new运算符,如下所示:
int[] numbers={1, 2, 3, 4, 5};
string[] names={"Matt","Joanne","Robert"};
多维数组
int[,] numbers= new int[3, 2]{{1, 2},{3, 4},{5, 6}};
string[,] siblings= new string[2, 2]{{"Mike","Amy"},{"Mary","Albert"}};
可省略数组的大小,如下所示:
int[,] numbers= new int[,]{{1, 2},{3, 4},{5, 6}};
string[,] siblings= new string[,]{{"Mike","Amy"},{"Mary","Albert"}};
如果提供了初始值设定项,则还可以省略 new运算符,如下所示:
int[,] numbers={{1, 2},{3, 4},{5, 6}};
string[,] siblings={{"Mike","Amy"},{"Mary","Albert"}};
交错的数组(数组的数组)
可以像下例所示那样初始化交错的数组:
int[][] numbers= new int[2][]{ new int[]{2,3,4}, new int[]{5,6,7,8,9}};
可省略第一个数组的大小,如下所示:
int[][] numbers= new int[][]{ new int[]{2,3,4}, new int[]{5,6,7,8,9}};-或-
int[][] numbers={ new int[]{2,3,4}, new int[]{5,6,7,8,9}};
请注意,对于交错数组的元素没有初始化语法。
访问数组成员
访问数组成员可以直接进行,类似于在 C/C++中访问数组成员。例如,下面的代码创建一个名为 numbers的数组,然后向该数组的第五个元素赋以 5:
int[] numbers={10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
numbers[4]= 5;
下面的代码声明一个多维数组,并向位于 [1, 1]的成员赋以 5:
int[,] numbers={{1, 2},{3, 4},{5, 6},{7, 8},{9, 10}};
numbers[1, 1]= 5;
下面声明一个一维交错数组,它包含两个元素。第一个元素是两个整数的数组,第二个元素是三个整数的数组:
int[][] numbers= new int[][]{ new int[]{1, 2}, new int[]{3, 4, 5}};
下面的语句向第一个数组的第一个元素赋以 58,向第二个数组的第二个元素赋以 667:
numbers[0][0]= 58;
numbers[1][1]= 667;
数组是对象
在 C#中,数组实际上是对象。System.Array是所有数组类型的抽象基类型。可以使用 System.Array具有的属性以及其他类成员。这种用法的一个示例是使用“长度”(Length)属性获取数组的长度。下面的代码将 numbers数组的长度(为 5)赋给名为 LengthOfNumbers的变量:
int[] numbers={1, 2, 3, 4, 5};
int LengthOfNumbers= numbers.Length;
System.Array类提供许多有用的其他方法/属性,如用于排序、搜索和复制数组的方法。
对数组使用 foreach
C#还提供 foreach语句。该语句提供一种简单、明了的方法来循环访问数组的元素。例如,下面的代码创建一个名为 numbers的数组,并用 foreach语句循环访问该数组:
int[] numbers={4, 5, 6, 1, 2, 3,-2,-1, 0};
foreach(int i in numbers){System.Console.WriteLine(i);}
由于有了多维数组,可以使用相同方法来循环访问元素,例如:
int[,] numbers= new int[3, 2]{{9, 99},{3, 33},{5, 55}};
foreach(int i in numbers){Console.Write("{0}", i);}
该示例的输出为: 9 99 3 33 5 55
不过,由于有了多维数组,使用嵌套 for循环将使您可以更好地控制数组元素
文章分享到这里,希望我们关于对象数组和对象数组的概念的内容能够给您带来一些新的认识和思考。如果您还有其他问题,欢迎继续探索我们的网站或者与我们交流,我们将尽力为您提供满意的答案。