0
点赞
收藏
分享

微信扫一扫

开心的一维数组

吴陆奇 2022-04-13 阅读 91
java

数组的本质和初始化

首先,数组就是相同数据类型的有序集合,简单总结了三个特点:

  1. 数组的长度在被创建完成之后不可轻易更改。
  2. 一个数组中的所有元素类型必须相同。
  3. 数组类型可以是任意类型(基本类型引用类型

然后,声明一维数组的方法的两种写法:

//java一般将表示数组的括号[]放在前面(推荐这么写)
int[] arr = new int[5];

//这种写法是C语言风格,但是也可以用
int arr[] = new int[5]; 

接着进行数组的初始化,系统会自动默认初始化:

  1. 数字类型的数组:默认初始化为 0
  2. 布尔类型的数组:默认初始化为 false
  3. 引用类型的数组:默认初始化为 null

我们也可以自己进行初始化,也就是赋值,同样分为静态初始化动态初始化

//静态初始化
int[] arr = {10, 20, 30, 40, 50};
//或者这么写
int[] arr = new arr[]{10, 20, 30, 40, 50};

//动态初始化
//比较常见的写法
for (int i = 0; i < arr.length; i++) {
    a[i] = 10 + 10 * i;
}

//也可以逐个进行初始化(也算动态初始化)
arr[0] = 10;    arr[1] = 20;
arr[2] = 30;    arr[3] = 40;
arr[4] = 50;

至此,一个最简单的数组就已经定义完成了,下面可以尝试遍历一下数组(就是逐个输出)

这里有一个方法叫做增强for循环(for-each)遍历数组,形式如下:

//int为数组类型
//temp是一个中间变量,起什么名都行
//arr为数组名
for (int temp:arr){
    System.out.println(temp);
}

//上面等价于下面的代码,但写起来更简便
for (int i = 0; i < arr.length; i++) {
    int temp = arr[i];
    System.out.println(temp);
}

这样就将数组的每一个元素都打印出来了。

稍微有点难度的是引用类型数组的运用,面向对象经常会用到,比如我们想定义一个学生类型的数组,在里面存放姓名,年龄,学号等信息:

class Student {
    //这里就不定义私有属性了
    String name;
    int age;
    int number;   //学号用String类型定义也可以



    //定义一个构造器,初始化对象
    public Student(String name, int age, int number) {
        this.name = name;
        this.age = age;
        this.number = number;
    }

    /*
    重写toString方法
    我的理解是对于打印动态初始化的对象
    一般都需要重写toString方法
    否则返回值为一个哈希值(可以理解为地址)
    */
    @Override  
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", number=" + number +
                '}';
    }
}

public class Text {
    public static void main(String[] args) {

        Student[] stu = new Student[2];     //定义一个有两个学生的数组

        //对属性初始化
        stu[0] = new Student("小秦", 20, 202201);  
        stu[1] = new Student("小红", 19, 202202);

        //遍历学生数组
        for (int i = 0; i < stu.length; i++){
            System.out.println(stu[i]);
        }
    }
}

一个简单的学生类数组就定义完成并且打印出来了:



欢迎指出问题!


 

举报

相关推荐

0 条评论