Java对象数组的定义与用法

2023-11-20

一.什么是对象数组

1.顾名思义就是当数组元素是类对象时,这样的数组称之为对象数组,在这种情况下,数组的每一个元素都是一个对象的引用。
2.对象数组,就是指包含了一组相关的对象。

二.对象数组的作用

1.数组就是一个容器,当创建了多个相同的类对象时,并且需要将这些类对象储存时,这个时候对象数组的作用就体现出来了。
2.通俗的说就是用来存多个对象的数组,将对象看成一个个数组元素

三.对象数组的语法定义

一、先定义,再开辟数组空间
类名称 对象数组名[] = null;
对象数组名 = new 类名称[长度];
二、定义并开辟数组空间
类名称 对象数组名[] = new 类名称[长度];

静态初始化:在定义数组的同时对数组元素进行初始化

Student[] student = {new Student(“小王”,20),new Student(“小明”,20),new Student(“小红”,20)};
// 这代表初始化了3个数组对象,分别是student[0],student[1],student[2]。
// 其中的"小王",20表示为对象的属性值

动态初始化:使用运算符new为数组分配空间

1.Student[] student = new Student[4];
// 这代表给student[]对象数组分配的长度为4的空间,并没有对数组的元素进行初始化。即数组元素都为空。
2.// 初始化student对象数组,否则会空值针异常
for(int i = 0;i<student.length;i++){
// 由用户自己动态决定输入数据
String id = scanner.next();
String name = scanner.next();
int age = scanner.nextInt();
student[i] = new Student(id, name, age);
}

四.对象数组案例

需求:

定义一个长度为5的数组
学生属性为:学号,姓名,班级,性别;
添加信息完毕之后,展示学生全部信息

Student学生类:

public class Student {
    String sid;
    String name;
    String className;
    String sex;

    public static Scanner input=new Scanner(System.in);


    @Override
    public String toString() {
        return "Student{" +
                "sid='" + sid + '\'' +
                ", name='" + name + '\'' +
                ", className='" + className + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
    public static void luru(Student[] stu){
        Student student = new Student();
        System.out.println("请输入学员的学号:");
        String sid = input.next();
        System.out.println("请输入学员的姓名:");
        String name = input.next();
        System.out.println("请输入学员的班级:");
        String className = input.next();
        System.out.println("请输入学员的性别:");
        String sex = input.next();
        student.sid=sid;
        student.name=name;
        student.className=className;
        student.sex=sex;
        for (int i=0;i< stu.length;i++){
            if (stu[i] ==null){
                stu[i]=student;
                System.out.println("添加成功");
                break;
            }
            System.out.println("当前学生列表:");
        }
        for (Student s:stu ) {

            if (s==null){
                break;
            }
            System.out.println(s);
        }
    }
}

Test测试类:

public static void main(String[] args) {
        Student[] student = new Student[5];
        while (true){
            luru(student);
        }
    }

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java对象数组的定义与用法 的相关文章

  • JPA 中的复合键

    我想创建一个具有自动生成的主键的实体 而且还有一个由其他两个字段组成的唯一复合键 我如何在 JPA 中执行此操作 我想这样做是因为主键应该用作另一个表中的外键 并且使其复合并不好 在下面的代码片段中 我需要命令和模型是唯一的 pk当然是主键
  • 存根方法时出现 InvalidUseOfMatchersException

    我有这个 TestNG 测试方法代码 InjectMocks private FilmeService filmeService new FilmeServiceImpl Mock private FilmeDAO filmeDao Bef
  • Java:无法从同一包中的不同类访问静态变量

    这很奇怪 因为我有一个可以访问 Frame dimension getWidth 的 Character 类 及其伙伴 getHeight 但是当我想在 Map 类中使用它时 Eclipse 强调了它并且无法给我反馈 运行该程序最终会出现
  • 如何在 Antlr4 中为零参数函数编写语法

    我的函数具有参数语法 如下面的词法分析器和解析器 MyFunctionsLexer g4 lexer grammar MyFunctionsLexer FUNCTION FUNCTION NAME A Za z0 9 DOT COMMA L
  • 打印星号的 ASCII 菱形

    我的程序打印出这样的钻石 但只有当参数或菱形的每一面为4 例如如果我输入6 底部三角形的间距是错误的 我一直在试图找出答案 当参数改变时 底部的三角形不会改变 只有顶部的三角形会改变 它只适用于输入4 public static void
  • 不同类型的数组

    是否可以有一个包含两种不同类型数据的数组 我想要一个包含双精度型和字符串的数组 我尝试过 ArrayList
  • GWT - 如何组织项目以拥有多个网页以及它们之间的导航

    我是 GET 的新手 顺便说一句 它给我留下了深刻的印象 并且发现它对于像我这样熟悉 C NET 桌面技术并愿意编写 Web 应用程序的人来说非常有吸引力 我根据 GWT Eclipse 向导生成的示例启动了自己的项目 该项目生成带有面板的
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • 如何将 Mat (opencv) 转换为 INDArray (DL4J)?

    我希望任何人都可以帮助我解决这个任务 我正在处理一些图像分类并尝试将 OpenCv 3 2 0 和 DL4J 结合起来 我知道DL4J也包含Opencv 但我认为它没什么用 谁能帮我 如何转换成 INDArray 我尝试阅读一些问题here
  • 什么时候可以在 Java 中使用 Thead.stop() ?

    Thread stop 的 Java 文档听起来好像如果您调用 Thread stop 世界就会终结 已弃用 这种方法本质上是不安全的 停止线程 Thread stop 导致它解锁所有已锁定的监视器 作为未经检查的 ThreadDeath
  • 需要使用 joda 进行灵活的日期时间转换

    我想使用 joda 解析电子邮件中的日期时间字符串 不幸的是我得到了各种不同的格式 例如 Wed 19 Jan 2011 12 52 31 0600 Wed 19 Jan 2011 10 15 34 0800 PST Wed 19 Jan
  • 自动生成Flyway的迁移SQL

    当通过 Java 代码添加新模型 字段等时 JPA Hibernate 的自动模式生成是否可以生成新的 Flyway 迁移 捕获自动生成的 SQL 并将其直接保存到新的 Flyway 迁移中 以供审查 编辑 提交到项目存储库 这将很有用 预
  • 如何检测 Java 字符串中的 unicode 字符?

    假设我有一个包含 的字符串 我如何找到所有这些 un icode 字符 我应该测试他们的代码吗 我该怎么做呢 例如 给定字符串 A X 我想将其转换为 AYXY 我想对其他 unicode 字符做同样的事情 并且我不想将它们存储在某种翻译映
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • GWT 2.3 开发模式 - 托管模式 JSP 编译似乎不使用 java 1.5 兼容性

    无法编译 JSP 类 生成的 servlet 错误 DefaultMessage 上次更新 0 日期 中 0 时间 HH mm ss z 语法 错误 注释仅在源级别为 1 5 时可用 在尝试以开发模式在 Web 浏览器中打开我的 gwt 模
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • 如何重新启动死线程? [复制]

    这个问题在这里已经有答案了 有哪些不同的可能性可以带来死线程回到可运行状态 如果您查看线程生命周期图像 就会发现一旦线程终止 您就无法返回到新位置 So 没有办法将死线程恢复到可运行状态 相反 您应该创建一个新的 Thread 实例
  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复

随机推荐

  • 【C++】语法小课堂 --- auto关键字 & typeid查看实际类型 & 范围for循环 & 空指针nullptr

    文章目录 一 auto关键字 C 11 1 auto的简介 2 auto的使用细则 auto与指针和引用结合起来使用 在同一行定义多个变量 3 auto不能推导的场景 1 auto不能作为函数的参数 2 auto不能直接用来声明数组 4 a
  • NodeMCU项目(一)天气时钟

    weather clock 概述 首先使NodeMCU模块连接WiFi 接入互联网 然后连接阿里的NTP服务器 获取网络授时 向心知天气服务器发送HTTP请求 对返回的天气信息进行解析 获得今天 明天 后天的天气信息 最后通过OLED屏幕显
  • 盘点

    漏洞与信息化进程相伴而生 为加强网络安全防护 避免漏洞所引发的威胁 漏洞管理成为重要IT策略 2021年 因漏洞导致的各类安全事件频发 涉及经济 民生的方方面面 提高安全意识已势在必行 以下为中科三方梳理的2021年十大网络安全漏洞 一起来
  • [vuex] vuex requires a Promise polyfill in this browser.报错

    出现这个错误 我第一眼就知道是ES6新增特征之一promise在IE低版本浏览器不兼容的原因 知道了原理就好解决了 第一步 安装 babel polyfill babel polyfill可以模拟ES6使用的环境 可以使用ES6的所有新方法
  • 作为工具制造者的大型语言模型

    文章目录 摘要 1 简介 2 相关工作 3 LLM as Tool Maker LATM 3 1 制作新工具并重用它们 3 2 用Dispatcher处理流数据 4 实验 4 1 实验设置 4 2 工具制作阶段的有效性 4 3 LATM提高
  • 安装cmake3.18.2,执行sudo ./bootstrap,出现-- Could NOT find OpenSSL, ...的问题

    安装cmake3 18 2 执行sudo bootstrap 出现 Could NOT find OpenSSL 的问题 问题描述 问题解决 引用 问题描述 ms ubuntu Downloads cmake 3 18 2 sudo boo
  • 【经验分享】h3c模拟器HCL安装问题集锦

    转载来源 经验分享 h3c模拟器HCL安装问题集锦 https mp weixin qq com s dzDO7WvnjPJF3M6LipGbaQ 问题一 HCL安装完成后启动失败 提示 当前系统用户名中包含非ASCII字符 解决方案 HC
  • flutterApp隐藏/显示状态栏和底部栏

    import package flutter services dart SystemChrome setEnabledSystemUIOverlays 隐藏状态栏 底部按钮栏 SystemChrome setEnabledSystemUI
  • ORACLE表的在线重定义

    一 在线表重定义的用处 1 修改表或者簇的存储参数 2 在相同schema的表空间之间 可以移动表或簇 注意 如果表的可以停止dml操作 则可以利用alter table move来进行表空间的更改 3 增加 修改或者删除一个或多个表或簇的
  • leetcode-712. 两个字符串的最小ASCII删除和

    712 两个字符串的最小ASCII删除和 题目 给定两个字符串s1 和 s2 返回使两个字符串相等所需删除字符的 ASCII 值的最小和 示例1 输入 s1 sea s2 eat 输出 231 解释 在 sea 中删除 s 并将 s 的值
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945

    博主介绍 博主介绍 大家好 我是 PowerShell 很高兴认识大家 主攻领域 渗透领域 数据通信 通讯安全 web安全 面试分析 点赞 评论 收藏 养成习惯 一键三连 欢迎关注 一起学习 一起讨论 一起进步 文末有彩蛋 作者水平有限 欢
  • Linux云计算-05_Linux软件包管理

    本章介绍Linux系统软件的安装 卸载 配置 维护以及如何构建企业本地YUM光盘源及HTTP本地源 1 RPM软件包管理 Linux软件包管理大致可分为二进制包 源码包 使用的工具也各不相同 Linux常见软件包分为两种 分别是源代码包 S
  • C++ pthread cond_wait 和 cond_broadcast的使用

    一个简单的实例程序 说明pthread cond wait 和 pthread cond broadcast 的使用方式 函数定义 int pthread cond wait pthread cond t cond pthread mute
  • Coding and Paper Letter(六十一)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 资源整理 1 Coding 1 航拍影像的土地覆盖分类 CAS机器学习人工智能2019 ZHAW 中ML DL分配的仓库 ml dl assignment 2019 2 跨
  • 职场新人如何使用ChatGPT提高工作效率

    刚刚从象牙塔中毕业 走向社会战场 作为职场新人的同学们刚刚进入公司和部门 难免会被安排做些本职工作之外的事务工作 被上级安排做些零零碎碎的小东西 俗称打杂 这些工作说难不难 想要做漂亮也并不简单 想要不辜负领导的信任 把这些工作做好 很容易
  • BP学习算法-构建三层神经网络

    引 人工神经网络 Artificial Neural Networks 简写为ANNs 也简称为神经网络 NNs 或称作连接模型 Connection Model 是一种模仿动物神经网络行为特征 进行分布式并行信息处理的算法数学模型 这种网
  • MySql学习笔记:一文上手MySql

    MySql学习笔记 quad PS 本文整理的笔记来自于B站视频 老杜带你学 mysql入门基础 mysql基础视频 数据库实战 视频讲的很好 值得大家一看 quad 一 MySql安装及概述 1 1 MySQL安装 MySql安装包下载链
  • 分层聚类算法

    分层聚类算法 转载 看到很多地方都讲到分层聚类法 这到底是什么东东 今天来研究一下 分层聚类法是聚类算法的一种 聚类算法是数据挖掘的核心技术 把数据库中的对象分类是数据挖掘的基本操作 其准则是使属于同一类的个体间距离尽可能小 而不同类个体间
  • 计算机网络4--Internet结构

    本页内容 1 基本结构 2 结构图解 3 层次结构图解 1 基本结构 a 端系统通过接入ISP access ISPs 连接到Internet b 接入ISP必须进一步互连 保证任意两个主机可以互相发送分组 c 构成复杂的网络互连的网络 2
  • Java对象数组的定义与用法

    目录 一 什么是对象数组 二 对象数组的作用 三 对象数组的语法定义 四 对象数组案例 一 什么是对象数组 1 顾名思义就是当数组元素是类对象时 这样的数组称之为对象数组 在这种情况下 数组的每一个元素都是一个对象的引用 2 对象数组 就是