数组的初始化方式总共三种:
1.静态初始化:除了用new关键字来产生数组外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
注意:静态初始化需要在声明后直接初始化!!!否则会报错
2.动态初始化:数组定义和为数组元素分配空间并赋值的操作分开进行。
3.默认初始化:数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
例1:在编程考试中,java得分60分,python得分70分,bigdata得分80分,AI得分90分。请使用一个数组将这些数据进行存储,并使用三种方法进行初始化。
package com.bjsxt.array;
class Exam{
private int score;
private String subject;
public Exam(int score,String subject){
this.score=score;
this.subject=subject;
}
public void setScore(int score) {
this.score = score;
}
public int getScore() {
return score;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getSubject() {
return subject;
}
@Override
public String toString() {
return "Exam{" +
"score=" + score +
", subject='" + subject + '\'' +
'}';
}
}
public class test1 {
public static void main(String[] args) {
/* 1.Static initialization */
int[] i = {60, 70, 80, 90};//静态初始化基本类型数组
Exam[] exams1 = {//给subject数组分配空间和赋值
new Exam(60, "java"),
new Exam(70, "python"),
new Exam(80, "bigData"),
new Exam(90, "AI")
};
//做一个强化for循环的打印,需要在步骤3和步骤2之间加上一个步骤6:Step 6
for (Exam exam : exams1) {
System.out.println(exam);
}
//2.Dynamic initialization
int[] a1 = new int[4];//动态初始化数组,先分配空间,并说明一共有4门科目
Exam[] exams2 = {//给subject数组分配空间和赋值
new Exam(60, "java"),
new Exam(70, "python"),
new Exam(80, "bigData"),
new Exam(90, "AI")};
for (int j = 0; j < 4; j++) {
System.out.println(exams2[j]);//尝试了getScore() and getSubject()反而只能打印出一半,所以就直接写
//exams1[j]全部打印,就出分数和科目名称了
}
//3.Default initialization
int score[] = new int[4];//默认值0,0
String[] subject = new String[4];//默认值null,null
Exam[] exams3 = {//给subject数组分配空间和赋值
new Exam(60, "java"),
new Exam(70, "python"),
new Exam(80, "bigData"),
new Exam(90, "AI")};
for(Exam exam3:exams3){
System.out.println(exam3);
}
}
}
例2:将如下这些数字:123,213,453,658保存到数组中,并分别使用三种初始化方式进行初始化。
package com.bjsxt.array;
public class test2 {
public static void main(String[] args){
// 静态初始化
int[] a1 = new int[]{123,213,453,658};
// 动态初始化
int[] a2 = new int[4];
a2[0] = 123;
a2[1] = 213;
a2[2] = 453;
a2[3] = 658;
// 默认初始化
int a3[] = new int[4];
a3[0] = 123;
a3[1] = 213;
a3[2] = 453;
a3[3] = 658;
System.out.println(a1[0]+"\t"+a1[1]+"\t"+a1[2]+"\t"+a1[3]);
System.out.println(a2[0]+"\t"+a2[1]+"\t"+a2[2]+"\t"+a2[3]);
System.out.println(a3[0]+"\t"+a3[1]+"\t"+a3[2]+"\t"+a3[3]);
}
}