您好, 访客   登录/注册

浅析java之对象数组

来源:用户上传      作者: 韩芝萍

   摘要:java是面向对象程序设计语言,对象数组作为javaSE中的基础部分的一个重要环节,是学生们在入门时经常容易混淆的知识点,结合作者个人多年教学积累,对基本类型数组和对象数组的引用进行分析和探讨,使学生更好地掌握及应用引用数据类型。
  关键词:基本数据类型;引用数据类型;数组;java
  中图分类号:G718.5 文献标志码:A 文章编号:1674-9324(2012)04-0063-02
  
   java是一种面向对象的程序设计语言,现在已经成为软件开发行业中的主流语言,在诸多高职院校计算机及相关专业中基本都已开设了java语言程序设计这门课。java中数据类型的存储分为两大类,基本数据类型(也称为原始数据类型)和引用数据类型(也称为复合类型)。数组是引用数据类型中的一种。它是引用数据类型、基本数据类型的数组,在存储时也是同引用数据类型类似,同时它与自定义类对象数组的声明与引用还有一定的差别。下面就以一维数组为例,对基本数据类型数组和对象数组分别探讨。
  一、基本数据类型数组
  数组都要先声明、再创建后使用。基本数据类型数组的声明有以下几种格式(以int类型为例):①int[]array;②int[]array=new int;③int[]array={1,2,3};int[]array=new int[]{1,2,3};以上几种格式对数组内容操作,分为对数组的动态初始化和静态初始化两种形式。在程序中对数组的动态赋值操作,如下代码所示:
  public class Test{
  public static void main(String args[]){
  int[] arrayi;
  arrayi=new int[3];
  /*int[]arrayi=new int[3];*/ //或用以上格式声明及创建数组
  *for(int i=0;i  System.out.println("\n动态初始化后:");
  arrayi[0]=1;arrayi[1]=2;arrayi[2]=3;for(int i=0;i  上述程序运行结果:0、0、0;动态初始化后:1、2、3。从以上程序结果分析,在整型数组中,单个数组元素就像整型变量一样,被创建后值存储于内存中,可以直接向数组元素赋值,直接对其引用操作。
  二、自定义对象数组
  自定义对象数组,它们由同一个类的多个具体实例有序组成。我们熟悉的主方法中的String args接收初始化参数时,参数就是一个典型的对象数组案例。由于其每个元素都是引用数据类型,数组在创建后,必须对每个对象分别进行实例化创建。以自定义学生类Student为例,学生类定义如下:
  class Student{
  private String name;
  public Student(String name){this.name=name;}
  public String getName(){return this.name;}}
  自定义对象的数组声明及初始化格式有以下几种:①Student[]array;array=new Student[3];②Student[]array=new Student[3];③Student[]array=new Student[]{new Student("lilei"),new Student("cili"),new Student("wuxi")};Student[]array={new Student("lilei"),new Student("cili"),new Student("wuxi")};
  对自定义对象数组动态初始化操作,代码如下:
  class Student{
  private String name;
  public Student(String name){this.name=name;}
  public String getName(){return this.name;}}
  public class Test {
  public static void main(String args[]){
  Student array[];
  array=new Student[3];
  /*Student[]array=new Student[3];*/
  for(int i=0;i  array[0]=new Student("lilei");
  array[1]=new Student("cili");
  array[2]=new Student("wuxi");
  System.out.println("动态初始化后:");
  for(int i=0;i  上述程序的运行结果:null、null、null;动态初始化后:lilei、cili、wuxi。从对象数组动态初始化程序运行结果分析,对象数组在经过创建后只建立了栈内存的地址空间,因此在没有对每个数组中的对象创建时输出全部为null,只有经过每个对象实例的独立地开辟堆内存空间,才能正确初始化对象数据。
  三、总结
  本文主要对数组的声明、创建及赋值操作分两大类进行比对式程序案例分析,对比式教学方法能够更加突出两种数组的差异点,使学生更容易java中基本数据类型数组与自定义对象数组的区别是,在创建后,基本数据类型数组可以直接对数组元素赋值、引用等操作;而自定义对象数组,需要对数组中的每个对象元素独立进行创建,然后才可以对其赋值、引用等操作,如果没有单独对每个对象元素创建,会导致空指针异常。期望通过以上教学能巩固学生对知识的掌握,为后续学习夯实基础。
  参考文献:
  [1]Bruce Eckel.Think in Java,Third Edition[M].北京:机械工业出版社,2004.
  [2]李钟尉,马文强,陈丹丹,等.Java从入门到精通[M].2008.
  
  作者简介:韩芝萍(1971-),女,本科学历,硕士学位,讲师。


转载注明来源:https://www.xzbu.com/9/view-1705514.htm