[转载] Java中对象数组的使用

参考链接: 如何在Java中交换或交换对象

Java对象数组使用

 一、Java数组的使用二、Java的对象数组2.1 问题提出2.2 问题解析2.3 问题拆分2.4 代码实现

    

   

  

 

 

 

一、Java数组的使用 

对象数组其实和Java的数组类似的,所以要很清楚Java的数组是如何使用的,如果有不懂的可以点下面这个链接Java数组的使用 

二、Java的对象数组 

2.1 问题提出 

为什么会有对象数组呢?假定有这种情况,我们需要录入一个班级同学的姓名,学号,和成绩,然后对成绩进行排序,以降序或者升序进行排列,这个时候就会有人跳出来说,我用一个字符串数组存储姓名,然后再用一个二维数组存放学号和成绩,然后根据程序的高低进行排序。 

2.2 问题解析 

NONONO!今天我们来教大家如何使用对象数组来解决这个问题,对象数组,我们前面学过Java(OOP)编程—(Java OOP编程),想必大家也对面向对象这个词也会稍微有了一些了解,对象数组就是可以存放多种不同的数据类型,然后我们通过对象来调用我们所存放的数据。 

接下来我就来告诉大家如何使用对象数组,完成这个成绩排序的问题 

2.3 问题拆分 

我们可以把问题简化一下,输入五个学生的成绩,然后进行排序打印输出 

先创建一个学生类给学生类添加学生的信息—姓名,学号,成绩,然后分别生成有参和无参的构造方法再创建一个学生测试类创建对象数组,给对象数组申请 5 个空间循环录入信息根据学生成绩进行排序,然后打印输出 

2.4 代码实现 

创建一个学生类的属性,包括学生的姓名,学号,成绩 为了方便,我把两个文件放进了同一个包中使用 

package A

/**

 * @author gorit

 * @date 2019年4月10日

 * 对象数组学生类的创建

 * */

public class Student {

    private String name;//学生的姓名

    private int num;//学生的学号信息

    private int grades;//学生的成绩

    

    //有参的构造方法

    public Student(String name, int num, int grades) {

        super();

        this.name = name;

        this.num = num;

        this.grades = grades;

    }

 

    //无参的构造方法

    public String getName() {

        return name;

    }

 

    public void setName(String name) {

        this.name = name;

    }

 

    public int getNum() {

        return num;

    }

 

    public void setNum(int num) {

        this.num = num;

    }

 

    public int getGrades() {

        return grades;

    }

 

    public void setGrades(int grades) {

        this.grades = grades;

    }

 

    public Student(){}

 

}

 

然后就是学生类的测试类 

package A

/**

 * @author gorit

 * @date 2019年4月10日

 * 对象数组的实例讲解

 * */

import java.util.Scanner;

 

public class StudentTest {

    public static void main(String[] args) {

        System.out.println("请录入学生姓名,学号、成绩:");

        Scanner in=new Scanner(System.in);

//        int[] a=new int[3];对照数组的使用

//      1、创建对象数组,Student类有三个属性,所以传入数据需要传三个数据

        Student[] s=new Student[5];//对象数组的创建是一样的

        for (int i = 0; i < s.length; i++) {

            //还可以一个个输入s[i].getName,s[i].getNum,s[i].getGrade,一个个输入,用下面的方法更加快捷

            s[i]=new Student(in.next(),in.nextInt(),in.nextInt());

        }

        

        Student s1=null;//创建一个为空的对象进行数据交换

        //根据学生的成绩进行排序,这里运用冒泡排序

        for(int i=0;i<s.length;i++) {

            for (int j =0; j < s.length; j++) {

                if(j!=4)//这里必须加上这个条件,不然数字会报出越界的问题

                if(s[j].getGrades()<s[j+1].getGrades()) {

                    s1=s[j+1];

                    s[j+1]=s[j];

                    s[j]=s1;

                }

            }

        }

        

        System.out.println("学生的成绩排名如下\n姓名\t学号\t成绩");

        for (int i = 0; i < s.length; i++) {

            System.out.println(s[i].getName()+"\t"+s[i].getNum()+"\t"+s[i].getGrades());

        }

        

    }

}

 

程序运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python自动化开发学习13-联合唯一

联合唯一 联合唯一&#xff0c;就是一个表中的多个字段的组合需要唯一。 使用mysql语句创建 比如创建一张hosts表&#xff0c;记录登录的ip地址或者hostname&#xff08;表中对应字段host&#xff09;和 端口号&#xff08;表中对应字段port&#xff09;&#xff0c;要求host 和…

[转载] Java获取泛型T的类型 T.class

参考链接&#xff1a; Java中的抽象 import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class Main{ public static void main(String[] args) { Foo<String> foo new Foo<String>(){}; // 在类的外部这样获取 Type type ((…

自定义控件---重写Listbox实现item图标变换和item点击事件

博客开通有一阵了&#xff0c;就是没有时间写&#xff0c;遗憾啊。&#xff01; 这几天做了个排序的自定义控件&#xff0c;在listbox item里放是button 并支持图标的交替变换 效果如下&#xff1a; 把代码贴上&#xff1a;1using System; 2using System.Collections.…

[转载] Spring面试题整理

参考链接&#xff1a; Java中的动态方法Dispatch和运行时多态 Spring面试题整理 2018年03月07日 21:11:46 hrbeuwhw 阅读数&#xff1a;49116 Spring 概述 1. 什么是spring? spring 是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用&#xff0c;但是有…

ansible: Linux批量管理神器

我们已经知道&#xff0c;基于集群可实现服务器横向扩展slace out。可是&#xff0c;当上百台主机集合成共同为一个站点提供web页面访问的形式时&#xff0c;怎么管理整个集群体呢&#xff1f; 一些小伙伴大概听说过pxe等可实现自动安装系统。可是&#xff0c;要我们一台一台主…

[转载] Python numpy函数:all()和any()比较矩阵

参考链接&#xff1a; Python中的any和all 数组元素的比对&#xff0c;我们可以直接使用“”进行比较&#xff0c;比如&#xff1a; 但是当数组元素较多时&#xff0c;查看输出结果便变得很麻烦&#xff0c;这时我们可以使用all&#xff08;&#xff09;方法&#xff0c;直接…

MySQL初识-架构-安装-初始化-连接-管理工具-数据文件

MySQL架构和结构分析 官方架构图 内部组件结构图 MySQL安装方式 MySQL初始化 MySQL工作模式及常用命令 交互式模式&#xff1a;mysql> 1234567891011121314# 交互式模式下的客户端命令mysql> help # 获取命令帮助 mysql> \? # 同上 mysql> \c # 取消命令执行 mysq…

[转载] Java基础——关联、聚合、组合

参考链接&#xff1a; Java中的关联 | 组合和聚合 一.引言 其实自己也不知道&#xff0c;在需求设计、架构设计、开发阶段是否真正需要弄明白“关联、聚合、组合”。原本计划这篇博文写“继承“和”多态”&#xff0c;但是一翻阅资料&#xff0c;基本上都会把“继承”和“组…

[转载] WSDL2Java详细使用说明【官方最全说明】

参考链接&#xff1a; Java中的this说明 WSDL to Java 命名 wsdl2java - 获取WSDL文档并生成完全带注释的Java代码&#xff0c;并实现相关服务。 概要 用例 : wsdl2java -fe|-frontend <front-end-name> -db|-databinding <data-binding-name> -wv <…

mdm.Dialogs.promptModal()使用

这是prompt的扩展&#xff0c;提供了更多的功能&#xff0c;比如可以添加其他按钮和图标import mdm.*;mdm.Application.init(this, onInit);function onInit():void {// 启动程序...}quit.addEventListener(MouseEvent.CLICK,quitProgram);function quitProgram(evt:MouseEvent…

[转载] JAVA 构造函数及其重载

参考链接&#xff1a; Java重载Overload public class Student{ public int stuId; public String stuName; public int stuAge; public int stuScore; public Student(){ } public Student(int sId,String sName){ stuId sId; sName stuName; } public Student(int sld,S…

学生机房虚拟化(十)系统操作设计实现

引入&#xff1a; 在前篇思路的指导下&#xff0c;进行了为期三个星期的调试最终建立了一个初步成熟的&#xff0c;具有亲和力的配置界面&#xff0c;现在此虚拟系统已经初步部署了一个机房&#xff0c;用来学生日常上课。在本篇中&#xff0c;本人并不试图去花篇幅讲解彼此之间…

[转载] java之重写toString

参考链接&#xff1a; Java程序的输出| 重写Override 1.toString()就是是重写&#xff0c;对于一般的对象来说都会有这个方法&#xff0c;其实这个方法的目的&#xff0c;主要就是将对象按字符串的方式输出出来&#xff1a;打个比方&#xff0c;比如一个People类&#xff0c;里…

Gson的使用,对于不需要html escape的情况的处理

引入&#xff1a; 虽然是小问题&#xff0c;但是我还是需要记录下&#xff0c;我们知道&#xff0c;Google提供了一个Gson框架让我们高效的吧普通对象&#xff08;一般VO为佳&#xff09; 和json字符串之间进行互转。因为转换多数是和浏览器打交道的&#xff0c;所以一般默认的…

[转载] Java 重写paint绘图

参考链接&#xff1a; 用Java重写Override 感谢原文&#xff1a;https://zhidao.baidu.com/question/260060153.html 这个方法需要注意的地方不多&#xff0c;也就是重写时&#xff0c;先调用 super.paint(g) 方法 paint方法不需要编写代码调用&#xff0c;只需要重写。 其他…

教你如何进入有密码的 XP 系统(下)

自动登录时禁用Shift键 当使用自动登录功能时&#xff0c;用户可通过按住Shift键忽略登录进程&#xff0c;输入其他用户名及密码进入电脑。该技巧可以禁用自动登录时的Shift键功能。操作步骤如下&#xff1a;打开“注册表编辑器”&#xff0c;找到[HKEY_LOCAL_MACHINE\Softwar…

[转载] 2020最新Java面试题,常见面试题及答案汇总

参考链接&#xff1a; Java程序的输出| 18(重写Override) 发现网上很多Java面试题都没有答案&#xff0c;所以花了很长时间搜集整理出来了这套Java面试题大全&#xff0c;希望对大家有帮助哈~ 博主已将以下这些面试题整理成了一个Java面试手册&#xff0c;是PDF版的。 关注…

【心随笔】叙述你成功完成一件事情的方法

一、situation 先描述你曾经处于的困难状况 二、task / target 说一说你是怎样做出打算的 三、action / attitude 告诉别人你做出的行动 四、result 最后获得了怎样的成绩转载于:https://www.cnblogs.com/tnxlvlxy/p/7806142.html

[转载] java排序compareTo:降序输出学生成绩

参考链接&#xff1a; Java程序的输出| 18(重写Override) 一道简单程序题&#xff1a; 编写一个程序&#xff0c;输入学生的姓名、分数信息&#xff0c;要求程序按照成绩降序排序后并输出。 实现方法有很多 方法一 public class ScoreSort2 { private String name; pr…

300GB*6 SCSI RAID5 LINUX服务器数据恢复手记

[摘要]某数码冲印网站&#xff0c;采用DELL POWEREDGE2850服务器&#xff0c;存储部分由6块300G硬盘组成RAID5&#xff0c;LINUX平台&#xff0c;1.5T逻辑磁盘中只包含一个卷&#xff0c;文件系统为EXT3&#xff0c;存储所有客户数码照片&#xff0c;服务器的故障导致整个公司无…