Java中对象数组的使用

Java中对象数组的使用给你一组学生的数据,比如姓名,性别,学号,成绩,然后根据成绩排序,这时你就得用对象数组啦

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

一、Java数组的使用

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

二、Java的对象数组

2.1 问题提出

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

2.2 问题解析

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

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

2.3 问题拆分

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

  1. 先创建一个学生类
  2. 给学生类添加学生的信息—姓名,学号,成绩,然后分别生成有参和无参的构造方法
  3. 再创建一个学生测试类
  4. 创建对象数组,给对象数组申请 5 个空间
  5. 循环录入信息
  6. 根据学生成绩进行排序,然后打印输出
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());
		}
		
	}
}

程序运行结果
在这里插入图片描述

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

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

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


相关推荐

  • 教师职称考计算机模块,2015年教师职称计算机考试模块「建议收藏」

    教师职称考计算机模块,2015年教师职称计算机考试模块「建议收藏」【职考宝典】为广大考生归纳2015年职称计算机考试模块,让考生提前进入考试氛围,了解考试题型,职考宝典涵盖面积广,模拟题库包含Internet应用,word2003、2007,winXP、wpsoffice、excel2003、2007,ppt2003、2007等。2015年教师职称计算机考试模块【职考宝典】为广大考生归纳2015年职称计算机考试模块,让考生提前进入考试氛围,了解考试题型,职考…

    2022年6月2日
    28
  • Vue学习之按键修饰符

    Vue学习之按键修饰符Vue学习之按键修饰符

    2022年4月23日
    95
  • mysql 1146 错误处理

    mysql 1146 错误处理在进行mysql 相关的备份,会出现1146错误。问题出现是因为之前把   mysql/data/ibdata1,ib_logfile0,ib_logfile1,ib_logfile2 文件删除了,mysql重启之后会自动生成这些文件的。但是之前的innodb引擎,就不能再访问了。特别注意一下: 删除ibdata1 文件的时候,必须要记得  这5张i…

    2022年6月12日
    53
  • php一键安装的环境包,php环境搭建的一键安装包有哪些?

    php一键安装的环境包,php环境搭建的一键安装包有哪些?php 环境搭建的一键安装包有 1 XAMPP 是一款功能强大的一键安装环境 2 PhpStudy 是支持 Win10 并且对于 PHP7 的支持也是不错 3 Appserv 是一款在 Windows 下的 PHP 一键安装环境 php 环境搭建的一键安装包有 1 XAMPPXAMPP 是一款功能强大的一键安装环境 它可以在 Windows Linux Solaris MacOSX 环境下进行安装对于 FTP 等常用操作也进

    2025年6月2日
    0
  • 纸张与什么是使用喷墨打印机所需的消耗品(打印机打印出来的纸黑乎乎的)

    【PConline杂谈】一直潜心研究打印机的小编,由于长时间周旋于各种打印机,甚是无聊。因此近日研究了点特别的东西。关于打印机耗材方面,一般都是硒鼓、墨盒等。对于打印机要用量最大的纸张耗材,却鲜有人关注。于是,小编就趁着元旦假期去恶补了下相关知识。对于常用的纸张耗材,给人的感觉却是熟悉而又陌生的。因此,因此这篇文章就谈一谈关于纸的知识。纸,四大古代发明之一,在人们的日常生活中发挥着及其重要的作用…

    2022年4月11日
    104
  • 从几何角度理解反函数的导数[通俗易懂]

    从几何角度理解反函数的导数[通俗易懂]从几何角度理解反函数的导数在同一个函数图像中,反函数和函数表达式是对同一个函数的不同表示tan⁡(π2−α)=tan⁡β cot⁡α=tan⁡β 1tan⁡α=tan⁡β 1f′(x)=φ′(y)\tan(\frac{\pi}{2}-\alpha)=\tan\beta\\~\\\cot\alpha=\tan\beta\\~\\\frac{1}{\tan\alpha}=\tan\beta\\~\\\frac{1}{f'(x)}=\varphi'(y)tan

    2022年10月29日
    0

发表回复

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

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