Java对象数组

Java对象数组所谓的对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作。 对象数组的声明先定义,再开辟空间类名称对象数组名[]=null;对象数组名=new类名称[长度]; 定义并开辟数组类名称对象数…

大家好,又见面了,我是你们的朋友全栈君。

所谓的对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作。

 

对象数组的声明

先定义,再开辟空间

类名称 对象数组名[] = null; 
对象数组名 = new 类名称[长度];

 定义并开辟数组

类名称 对象数组名[] = new 类名称[长度];

在声明对象数组后 ,必须对每个数组成员进行实例化话 才能直接使用,否则报空指针异常!

 

动态初始化

先声明数组,然后对数组中的每一个对象必须分别进行实例化操作。

public class Test {
    public static void main(String[] args) {
        Person[] ps = new Person[3]; // 声明一个对象数组,里面有三个对象
        System.out.println("---------------数组声明后-------------------");
        for (int x = 0; x < ps.length; x++) {
            System.out.print(ps[x] + " "); // 循环输出
        }
        // 创建3个人,并实例化
        Person p1 = new Person("jerry", 18);
        Person p2 = new Person("tom", 20);
        Person p3 = new Person("rose", 25); 
        ps[0] = p1; // 实例化第一个元素
        ps[1] = p2; // 实例化第二个元素
        ps[2] =p3; // 实例化第三个元素
        System.out.println("\n---------------对象实例化-------------------");
        for (int x = 0; x < ps.length; x++) {
            System.out.print(ps[x] + " ");
        }
    }
}
class Person {
    private String name; // 姓名属性
    private int age; // 年龄属性
    public Person(String name, int age) { // 通过构造方法设置内容
        this.name = name; // 为姓名赋值
        this.age = age; // 为年龄赋值
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }
}

执行结果如下:

---------------数组声明后-------------------
null	null	null	
---------------对象实例化-------------------
Person [name=jerry, age=18] Person [name=tom, age=20] Person [name=rose, age=25]	

下面是对上面对象数组初始化操作的内存图解:

Java对象数组

 

静态初始化

类名称 对象数组名[] = new 类名称[] {对象,对象......};
public class Test {
    public static void main(String[] args) {
        // 声明一个对象数组,里面有三个对象,使用静态初始化方式
        Person ps[] = { new Person("jerry", 18), new Person("tom", 20), 
            new Person("rose", 25)}; 
        System.out.println("---------------数组输出-------------------");
        for (int x = 0; x < ps.length; x++) {
            System.out.print(ps[x] + " "); // 循环输出
        }
    }
}

执行结果如下:

---------------数组输出-------------------
Person [name=jerry, age=18] Person [name=tom, age=20] Person [name=rose, age=25] 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137290.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • screenflow怎么录屏_mac录屏软件 带声音

    screenflow怎么录屏_mac录屏软件 带声音ScreenFlow8forMac是一款集屏幕录制和视频编辑为一体的软件,全新版本screenflowformac中文版已经更新,新版本带来跟踪缩略图、手绘注释、可拆卸编辑时间线、快速旁白和配音添加、刻录字幕等新功能,还有更多改进,赶紧来体验一下吧!ScreenFlow8forMac官方介绍ScreenFlow®是专为macOS设计的屡获殊荣的屏幕录制和视频编辑软件。凭借高质量的屏幕,视频,音频和iOS捕捉,极其强大的编辑功能以及新的StockMediaLibrary选项,

    2022年9月24日
    2
  • autoconf产生Makefile流程

    autoconf产生Makefile流程生成Makefile的流程。参考http://www.ibm.com/developerworks/cn/linux/l-makefile/首先进入project目录,在该目录下运行一系列命令,创建和修改几个文件,就可以生成符合该平台的Makefile文件,操作过程如下:1)运行autoscan命令2)将configure.scan文件重命名为configure.

    2022年6月3日
    37
  • Android短信验证码控件,Android中实现短信验证码自动填入

    Android短信验证码控件,Android中实现短信验证码自动填入Android中实现短信验证码自动填入由于目前的好多应用都有短信验证,短信验证码收到后,用户手动输入已经显得有麻烦,于是我写了这篇博文,希望能对大家有所帮助。实现步骤:1.写一个SmsBroadcastReceiver,在AndroidMainifirst.xml文件中注册:/***配置广播接收者:**表示:*设置此广播接收者的级别为最高*/类代码:publiccl…

    2022年7月25日
    10
  • java中读取配置文件的方法fileSystemXmlapplicationContext与classPathXmlApplicationContext

    java中读取配置文件的方法fileSystemXmlapplicationContext与classPathXmlApplicationContext

    2021年7月19日
    51
  • qt tcpsocket 接收数据_如何给微信好友发送指定位置

    qt tcpsocket 接收数据_如何给微信好友发送指定位置在网络应用中,有时候我们会遇到这样的问题,用TCP不断的接收和发送不同类型的数据,数据大小,格式都不相同,起初看了qt的例子,按照例子写的程序效果相当的不好,尤其是在连续发送大数据的时候,接收端根本无法判断数据是否完整了,也不知道什么时候取读取,经过各种折腾加上看qt源码,总结出了这个方法,发送的时候,要先发送这个数据序列化后的大小,然后发送这个数据本身,接收端,首先收到了要接收数据的大小,心里有

    2025年10月10日
    5
  • 调整数据库表结构,搞定 WordPress 数据库查询缓慢问题

    调整数据库表结构,搞定 WordPress 数据库查询缓慢问题

    2021年11月24日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号