Java对象数组

来自CloudWiki
跳转至: 导航搜索

普通一维数组

前面的学习中,我们学习了普通一维数组,如下所示。

4-110.png

public class TestArray {
   public static void main(String[] args) {
      // 数组大小
      int size = 5;
      // 第1种方法
      double[] myList = new double[size];
      myList[0] = 1;
      myList[1] = 2;
      myList[2] = 3;
      myList[3] = 4;
      myList[4] = 5; 
      
      
   }
}

声明和创建对象数组

在我们学了类和对象之后,其实对象也可以创建数组,我们将它称作对象数组。

声明和创建对象数组的语法与基本类型值数组创建语法相同,例如:

Book[] books=new Book[5];

该语句创建了一个存储5个Book类型数据的数组,如图4-5所示。

Java4-5.png

注意:当使用new操作符创建对象数组后,这个数组中每个元素都是默认值为null的引用变量,如果程序中调用数组中的元素,会引发NullPointerException 异常。所以我们在使用数组中的元素前,需要对齐进行初始化。

对象数组初始化

数组中保存的每一个对象必须单独实例化,存储如图4-6所示。 代码为: 例子:

public class TestArray {
   public static void main(String[] args) {
      // 数组大小
      int size = 5;
      /
      Book[] books=new Book[size];
      books[0]=new Book("01","think in java","Bruce Eckel",50,"工具类",50.0f);
      books[1]=new Book("02","JAVA核心技术","Cay S.Horstmann",40,"工具类",50.0f);
      books[2]=new Book("03","射雕英雄传","金庸",30,"文学类",,50.0f);
      books[3]=new Book("04","平凡的世界","路遥",20,"文学类",50.0f);
      books[4]=new Book("05","心理罪","雷米",60,"文学类",50.0f);     
      
   }
}

Java4-6.png

应用:对象数组的遍历

下面我们以商院面馆的Noodles为例,演示一下对象数组的遍历

Java2020-5-11.png

商院面馆


public class Store {
    
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int size=3;
        Noodles [] nset =  new Noodles[size];
        nset[0]= new Noodles("山西刀削面",105.0f,30);
        nset[1]= new Noodles("兰州牛肉面",15.0f,20);
        nset[2]= new Noodles("北京炸酱面",12.0f,30);
        
        for(int i=0;i<nset.length;i++) {
        	System.out.println(nset[i].toString());
        }   
        
        
        
	}

}

思考:如何查询数组中刀削面的价格

思考:如何计算商品的总库存、商品的总价值

练习:商院面馆评分

商院面馆开通了餐品评分功能,假设餐品一共有5种,共有3位顾客参与评分,

请你定义一个二维数组来存储评分,并打印出每个餐品的平均得分。