定义:
相同类型数据的有序集合---整型数组、浮点型数组...
特点:
相同类下的若干数据
按照一定先后次序排列组合而成
每个数据称为一个元素
每个元素可以通过一个索引(下标)来访问它们---每个元素的索引下标是有序的
特点:
长度是确定的。数组一旦被创建,它的大小就是不可以改变的
其元素必须是相同类型,不允许出现混合类型
数组类型可以是任何数据类型,包括基本类型和引用类型
数组就是对象
数组变量属于引用类型
数组中每个元素相当于对象的成员变量---默认遵守对象成员变量的规则
格式:
type[] arr_name; //推荐使用这种方式
type arr_name[];
//创建一个数组
type[] arr_name = new type[分配的空间大小];
int[] arr = new int[5]; //a这个数组能装五个整数,默认值为成员变量的数值默认类型
//还有一种赋值的写法
int[] a = new int[]{1,2,3,4};
//写法比较
int[] arr;
arr = {1,2,3,4}; //编译错误,没有初始化对象!!!
实例:
package cn.Lucifer.arrays;
?
/**
* 测试数组的声明
* @author Lucifer
*/
public class TestNo1 {
public static void main(String[] args) {
/*
声明一个整数的类型的数组
*/
Integer[] arr01;
/*
给数组分配空间,声明数组的长度
*/
arr01 = new Integer[10];
String arr02[] = new String[5]; //声明一个String类型的数组
User[] arr03 = new User[3]; //这个的意思是可以放三个User对象的数组
/*
这个时候这个数组是空的,大小也没有定义出来
再JVM里面这个时候并没有为这个数组分配空间
*/
/*
数组的赋值
*/
arr01[0] = 13; //数组的0号索引位的值为13,内存里面的0号所以的空间的值为13
arr01[1] = 12; //通过索引下标赋值。索引下标:0,1,2,3,4,5,6,7,8,9
// arr01[10] = 100; //编译能通过但是执行会报错---下标越界。索引下标的范围:从0开始到数组.length结束
/*
循环赋值
*/
for(int i = 0; i < arr01.length; i++){
arr01[i] = 10*i;
System.out.println(arr01[i]);
}
/*
这个length是一个方法
通过循环初始化数组然后打印出结果
*/
}
}
?
//创建一个User类
class User{
private Integer id;
private String name;
?
/*JavaBean*/
public void setId(Integer id){
this.id = id;
}
?
public Integer getId(){
return this.id;
}
?
public void setName(String name){
this.name = name;
}
?
public String getName(){
return this.name = name;
}
}
声明数组时内存的变化如图:
对象数组声明与赋值实例:
package cn.Lucifer.arrays;
import cn.Lucifer.arrays.User;
?
public class TestNo2 {
public static void main(String[] args) {
// User arr03[] = new User[3]; //声明一个User类数组,给数组分配空间,开辟三个空间
arr03[0] = new User(1001,"Lucifer"); //数组空间的0号索引位创建一个对象
arr03[1] = new User(1002,"Harden");
arr03[2] = new User(1003,"James");
// UserNo2 u2 = new UserNo2();
?
?
//遍历数组
for(int j = 0; j < arr03.length; j++){
// System.out.println(u2.toString(arr03[j]));
System.out.println(arr03.getClass());
}
}
}
?
//新建一个类重写toString方法
class UserNo2{
/*重写toString方法,不能再一个方法下重写另一个方法*/
原文:https://www.cnblogs.com/JunkingBoy/p/14626315.html