面向对象的基础_10数组的初始化

数组

数组时相同类型数据的有序集合。描述的时相同类型的若干个数据,按照一定的先后次序排列组合而成。
其中,每一个数据称作一个元素,每个元素可以通过一个索引下标来访问它们。
特点:

  1. 长度时确定的,一旦被创建,它的大小就不可以改变
  2. 其元素必须是相同类型,不允许出现混合类型
  3. 数组类型可以是任何数据类型,包括基本类型和引用类型
  4. 数组变量属于引用类型,数组可以看作是对象,数组中的每个元素相当于该对象的成员变量

数组的声明有两种方式:

  1. type[ ] arr_name;//推荐使用这种方式
  2. type arr_name[ ];

注意:
  1. 声明的适合没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这个时候才有长度
  2. 声明一个数组的时候并没有数组被真正创建
  3. 构造一个数组,必须指定长度
package text;
public class text01 {
   public static void main(String[] args) {
   	int[]  arr01 = new int[10] ;//告诉系统数组长度为10,可以放10个int型变量
   	//索引下标[0, length-1]:0,1,2,3,4,5,6,7,8,9 
   	String   arr02[] = new  String[5];
   	arr01[0] = 10;
//		arr01[10] = 100;    // java.lang.ArrayIndexOutOfBoundsException
   	
   	//通过循环初始化数组
   	for(int i=0;i<arr01.length;i++){
   		 arr01[i] = 10*i;
   	}
   	//通过循环读取数组里面元素的值
   	for(int i=0;i<arr01.length;i++){
   		 System.out.println(arr01[i]);
   	}
   	
   	User[]   arr03 = new User[3];
   	arr03[0] = new User(10,"代红1");
   	arr03[1] = new User(100,"代红2");
   	arr03[2] = new User(1000,"代红3");
   	
   	for(int i=0;i<arr03.length;i++){
   		System.out.println(arr03[i].getName());
   	}
   	
   }
}
class User{
   private int id;
   private String name;
   public User(int id, String name) {
   	super();
   	this.id = id;
   	this.name = name;
   }
   public int getId() {
   	return id;
   }
   public void setId(int id) {
   	this.id = id;
   }
   public String getName() {
   	return name;
   }
   public void setName(String name) {
   	this.name = name;
   }
   
}

创建一维数组有三步骤:

  1. 声明数组(在栈内存Main栈帧中给一个变量入栈)
  2. 给数组分配空间(分配对应的堆内存,让栈中数组变量指向第一个元素)
  3. 给数组赋值(用下标单独赋值,循环赋值)
    如果是引用对象,则new出来的对象把地址当成数组元素;基本类型直接存入数组中

数组的初始化

三种:静态初始化、动态初始化、默认初始化
代码如下:

package text;
public class text01 {
   public static void main(String[] args) {
   	//静态初始化
   	int[]  a = {2,4,65};
   	User[]  b ={
   		new User(10,"代红1"),
   		new User(100,"代红2"),
   		new User(1000,"代红3")
   	  };
   	
   	//默认初始化
   	int[]   c = new int[3];		
   	//默认给数组的元素进行赋值。赋值的规则和成员变量默认赋值规则一致
   	
   	//动态初始化
   	int[] a1 = new int[2];//动态初始化数组,先分配空间;
   	a1[0]=1;//给数组元素赋值;
   	a1[1]=2;//给数组元素赋值;
   }
}
class User{
   private int id;
   private String name;
   public User(int id, String name) {
   	super();
   	this.id = id;
   	this.name = name;
   }
   public int getId() {
   	return id;
   }
   public void setId(int id) {
   	this.id = id;
   }
   public String getName() {
   	return name;
   }
   public void setName(String name) {
   	this.name = name;
   }
   
}

数组的遍历_for-each

增强for循环for-each是JDK1.5新增的功能
作用:读取数组或集合中所有的元素——对数组进行遍历

package text;
public class text01 {
   public static void main(String[] args) {
   	int[] a = new int[4];
       //初始化数组元素的值
       for(int i=0;i<a.length;i++){
           a[i] = 100*i;
       }
       //读取元素的值
       for(int i=0;i<a.length;i++){
           System.out.println(a[i]);
       }
       System.out.println("----------我是分隔符------------");
       //foreach循环:用于读取数组元素的值,不能修改元素的值
       //循环遍历a数组,放入m变量进行操作且m没有下标
       for(int m : a){
       	System.out.println(m);  
       }
       
       String[] ss = { "a", "b", "c", "d" };
       for (String temp : ss) {
           System.out.println(temp);
       }
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值