数组
为什么需要数组?
比如一个班的50个学生每个人有一定的钱,此时要统计所有学生的钱的总数,这样不可能分别定义50个变量,这就引出了数组!
数组可以存放多个同一个类型的数据
数组的定义
数据类型 数组名[] = new 数据类型[数组大小];//中括号和数组名的位置可以互换
//或者
数据类型 数组名[];
数组名 = new 数据类型[数组大小];
其实这个定义方法怎么记忆呢?
对比数组和普通的变量的定义形式,可以发现,数组就是比普通的变量多了个中括号,这个中括号就是说明,这个变量名是个数组变量名。
还有一种定义方法:
数据类型 数组名[] = {a,b,c...};
int a[] = {1,2,3,4,5,6};
- 数组定义了之后就存放在内存里。
- 数组访问如果越界了,编译器并不会报错,但是运行的时候会抛错。
- 数组的大小如何知道? 数组名.length
- 对象数组也可以用哦~
class Dog{
...
}
Dog dogs[] = new Dog[4];
//!!!!!!
//注意!!此时不能直接用Dog[0],因为,这句话起的作用仅仅是在内存中拿出四只狗的内存空间,但是并没有new新的狗。也可以这么想,假如可以用了,那么如果狗狗需要构造函数,怎么办?也就是说,一下子new4个狗的空间,并不是new4个狗,因为没法写构造函数啊~,也就是说,还得new新的狗。
dogs[0] = new Dog();
//这样之后才可以访问dogs[0];
注意
- 简单数据类型的数组,可以直接赋值;对象数组在定义后,赋值时需要再次为每个对象分配空间,也就是new对象
- 数组的大小必须实现指定
- 数组名可以理解为执行数组首地址的引用
- 数组的下标是从0开始的
多维数组
定义
类型 数组名 [][]= new 类型[大小][大小]
int a[][]= new int[2][3]