数组的三种初始化方式以及练习

数组的初始化方式总共三种:

 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]);
    }

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值