java对象数组的认识和使用

一、对象数组

对象数组,是指包含了一组相关的对象,即可以存放多种不同的数据类型,然后我们通过对象来调用我们所存放的数据。但是在对象数组的使用中:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作,否则会报空指针异常*。

二、认识对象数组

//对象数组:数组中每一个元素为一个对象。
//为对象数组分配内存空间:
Fruits [] fruits = new fruits[5];//创建对象数组
 for (int i = 0; i < fruits.length; i++) {   //对象数组动态初始化
                    fruits [i] = new Fruits();  //对象实例化
                }
   /*对象数组的定义需要它需要为每一个元素进行实例化
    没有实例化,会报“空指针异常”的错误。对象和数不一样,对象数组中为对象,如果没有实例化,代表没有对象,也就是说用不存在的东西操作,本身这个操作也是不存在的。
   */
   //如果没有初始化,会发生如下异常:
*Exception in thread "main" java.lang.NullPointerException: Cannot assign field "num" because "fruits[i]" is null*

三、使用实例

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

        Fruits[] fruits = new Fruits[5]; //创建对象数组
                for (int i = 0; i < fruits.length; i++) {   //对象数组动态初始化
                    fruits [i] = new Fruits();  //对象实例化
                }
                FruitsTest test = new FruitsTest(); //需要先创建FruitsTest对象,才能调用其他的方法
                //1.对对象数组赋初始值
                test.fuZhi(fruits);
                //2.遍历水果信息
                test.print(fruits);
                //3.根据月份按照冒泡排序进行重新排序
                test.bubble(fruits);
                //4.查找数量为10的水果信息
                test.search(fruits,5);
            }
           //    1.对象数组的赋值

            public void fuZhi(Fruits[] fruits){
                for (int i = 0; i < fruits.length; i++) {
                    fruits[i].num = (i + 1);
                    fruits[i].quantity = (int)(Math.random()*10);
                    fruits[i].mature = (int)(Math.random()*3);
                }
            }
            //   2.遍历数组水果的信息

            public void print(Fruits[] fruits){
                System.out.println("水果的基本信息是:");
                for (int i = 0; i < fruits.length; i++) {
                    System.out.println(fruits[i].show());
                }
            }
            //    3.根据数量按照冒泡排序进行重新排序

            public void bubble(Fruits[] fruits){
                for (int i = 0; i < fruits.length - 1; i++) {
                    for (int j = 0; j < fruits.length - 1 -i; j++) {
                        if(fruits[j].quantity > fruits[j+1].quantity){
                            Fruits temp = fruits[j];
                            fruits[j] = fruits[j+1];
                            fruits[j+1] = temp;
                        }
                    }
                }
                System.out.println("冒泡排序后的水果信息为:");
                for (int i = 0; i < fruits.length; i++) {
                    System.out.println(fruits[i].show());
                }
            }
            //    4.查找数量为10的水果信息

            public void search(Fruits[] fruits, int number){
                System.out.println("数量为"+number+"的水果信息如下:");
                int a=0;
                for (int i = 0; i < fruits.length; i++) {
                    if(fruits[i].quantity == number){
                        a++;
                        System.out.println(fruits[i].show());
                    }
                }
                if(a==0){
                    System.out.println("没有数量为"+number+"的水果!");
                }
            }
        }

        class Fruits {
            int num; //水果编号
            int mature;    //成熟度
            int quantity;    //月份
            //   展示水果信息

            public String show(){
                return "水果编号:"+num+" \t 数量:"+quantity+"  \t  成熟度(0代表未成熟,1代表刚成熟,2代表过成熟):"+mature;
            }
        }

结果:
在这里插入图片描述

总结

本文总结对象数组使用时需要注意的异常,空指针异常,尤其是多次使用时一定要注意实例化这个问题!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验目的: 1. 掌握Java数组的基本概念和用法。 2. 熟悉Java数组的定义、初始化、赋值、遍历等操作。 3. 理解Java数组在编程的重要性和作用。 实验内容: 本次实验主要包括以下内容: 1. 数组的定义和初始化。 2. 数组的遍历和访问。 3. 数组的排序和查找。 4. 数组的复制和拼接。 实验步骤和结果: 1. 数组的定义和初始化 Java数组是一种特殊型的变量,用于存储相同型的数据。数组可以存储基本数据型和对象型。 定义和初始化数组的方法: ``` // 定义一个名为array的整型数组,长度为5 int[] array = new int[5]; // 初始化数组元素 array[0] = 1; array[1] = 2; array[2] = 3; array[3] = 4; array[4] = 5; ``` 也可以使用以下方式定义和初始化数组: ``` // 定义一个名为array的整型数组,同时初始化数组元素 int[] array = {1, 2, 3, 4, 5}; ``` 2. 数组的遍历和访问 数组的遍历和访问可以通过循环语句来实现。常用的循环语句有for循环和foreach循环。 ``` // 使用for循环遍历数组 for(int i=0; i<array.length; i++){ System.out.println(array[i]); } // 使用foreach循环遍历数组 for(int num : array){ System.out.println(num); } // 访问数组元素 System.out.println(array[0]); ``` 3. 数组的排序和查找 Java数组提供了sort()方法来对数组进行排序。sort()方法可以对基本数据型和对象型进行排序。 ``` // 对整型数组进行排序 Arrays.sort(array); // 对字符串数组进行排序 String[] strArray = {"apple", "banana", "orange"}; Arrays.sort(strArray); ``` Java数组也提供了binarySearch()方法来进行二分查找。binarySearch()方法可以对已经排序的数组进行查找。 ``` // 对整型数组进行二分查找 int index = Arrays.binarySearch(array, 3); ``` 4. 数组的复制和拼接 Java数组提供了copyOf()方法来复制数组。copyOf()方法可以对原数组进行复制,也可以指定复制的长度。 ``` // 复制整个数组 int[] newArray = Arrays.copyOf(array, array.length); // 复制部分数组 int[] partArray = Arrays.copyOf(array, 3); ``` Java数组也可以通过arraycopy()方法来进行拼接。arraycopy()方法可以将一个数组的元素复制到另一个数组。 ``` // 将两个数组拼接 int[] array1 = {1, 2, 3}; int[] array2 = {4, 5, 6}; int[] newArray = new int[array1.length + array2.length]; System.arraycopy(array1, 0, newArray, 0, array1.length); System.arraycopy(array2, 0, newArray, array1.length, array2.length); ``` 实验结论: 通过本次实验,我深入了解了Java数组的基本概念和用法。掌握了Java数组的定义、初始化、赋值、遍历、排序、查找、复制和拼接等操作。同时,也深刻认识Java数组在编程的重要性和作用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值