Java 自定义类数组的初始化

本文介绍了Java中常见的空指针异常问题及其解决方案。通过实例展示了如何在声明自定义类数组后,对每个元素进行实例化以避免空指针异常。代码示例中创建了一个Fruit类的数组,并分别初始化每个元素,最后打印出Fruit对象的name和price属性。

1 简介

  • 若初始化不到位,常遇到“空指针异常”(java.lang.NullPointerException)的问题。
  • 此类解决方案是:在声明自定义类数组后,必须再对每一个数组元素 (自定义类)进行实例化。
    ­­

2 代码示例

此处,自定义类为Fruit;类数组名为f,数组元素个数为3;

2.1 类数组的声明形式(4种常见形式):

//形式1
Fruit[] f = new Fruit[3];

//形式2
Fruit f[] = new Fruit[3];
 
//形式3
Fruit f[];
f = new Fruit[3];
 
//形式4
Fruit[] f;
f = new Fruit[3];

2.2 对该自定义类数组的每个元素进行实例化(2种常见形式):

//形式1
for(int i=0; i<f.length;i++)
{ f[i] = new Fruit();}
 
//形式2
for(Fruit r : f)
{r = new Fruit();}

2.3 完整源代码

import java.io.*;
import java.util.*;

public class custom_array_initial {

    public static void main(String[] args) throws IOException{
        
        Fruit[] f = new Fruit[3];   
          
        f[0] = new Fruit();
        f[0].setName("Apple");
        f[0].setPrice(9.9);
        
        f[1] = new Fruit();
        f[1].setName("Orange");
        f[1].setPrice(12.5);
        
        f[2] = new Fruit("Banana", 15.9);
        
        System.out.println(">>>>>> Print result: ");
        for(Fruit r : f){
            System.out.println("Name: " + r.name + ", Price: " + r.price);
        }
    }

    public static class Fruit{
        String name;
        double price;

        public Fruit(){
        }
        public Fruit(String name, double price) {
            this.name = name;
            this.price = price;
        }

        public void setName(String name) {
            this.name = name;
        }
        public String getName() {
            return this.name;
        }
        
        public void setPrice(double price) {
            this.price = price;
        }
        public  double getPrice() {
            return this.price;
        }
    }
}


3 输出结果

输出结果为:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值