[转载] Java中对象数组的使用
參考鏈接: 如何在Java中交換或交換對象
Java對象數(shù)組使用
?一、Java數(shù)組的使用二、Java的對象數(shù)組2.1 問題提出2.2 問題解析2.3 問題拆分2.4 代碼實現(xiàn)
? ??
? ?
??
?
?
?
一、Java數(shù)組的使用?
對象數(shù)組其實和Java的數(shù)組類似的,所以要很清楚Java的數(shù)組是如何使用的,如果有不懂的可以點下面這個鏈接Java數(shù)組的使用?
二、Java的對象數(shù)組?
2.1 問題提出?
為什么會有對象數(shù)組呢?假定有這種情況,我們需要錄入一個班級同學(xué)的姓名,學(xué)號,和成績,然后對成績進(jìn)行排序,以降序或者升序進(jìn)行排列,這個時候就會有人跳出來說,我用一個字符串?dāng)?shù)組存儲姓名,然后再用一個二維數(shù)組存放學(xué)號和成績,然后根據(jù)程序的高低進(jìn)行排序。?
2.2 問題解析?
NONONO!今天我們來教大家如何使用對象數(shù)組來解決這個問題,對象數(shù)組,我們前面學(xué)過Java(OOP)編程—(Java OOP編程),想必大家也對面向?qū)ο筮@個詞也會稍微有了一些了解,對象數(shù)組就是可以存放多種不同的數(shù)據(jù)類型,然后我們通過對象來調(diào)用我們所存放的數(shù)據(jù)。?
接下來我就來告訴大家如何使用對象數(shù)組,完成這個成績排序的問題?
2.3 問題拆分?
我們可以把問題簡化一下,輸入五個學(xué)生的成績,然后進(jìn)行排序打印輸出?
先創(chuàng)建一個學(xué)生類給學(xué)生類添加學(xué)生的信息—姓名,學(xué)號,成績,然后分別生成有參和無參的構(gòu)造方法再創(chuàng)建一個學(xué)生測試類創(chuàng)建對象數(shù)組,給對象數(shù)組申請 5 個空間循環(huán)錄入信息根據(jù)學(xué)生成績進(jìn)行排序,然后打印輸出?
2.4 代碼實現(xiàn)?
創(chuàng)建一個學(xué)生類的屬性,包括學(xué)生的姓名,學(xué)號,成績 為了方便,我把兩個文件放進(jìn)了同一個包中使用?
package A
/**
?* @author gorit
?* @date 2019年4月10日
?* 對象數(shù)組學(xué)生類的創(chuàng)建
?* */
public class Student {
? ? private String name;//學(xué)生的姓名
? ? private int num;//學(xué)生的學(xué)號信息
? ? private int grades;//學(xué)生的成績
? ??
? ? //有參的構(gòu)造方法
? ? public Student(String name, int num, int grades) {
? ? ? ? super();
? ? ? ? this.name = name;
? ? ? ? this.num = num;
? ? ? ? this.grades = grades;
? ? }
?
? ? //無參的構(gòu)造方法
? ? 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(){}
?
}
?
然后就是學(xué)生類的測試類?
package A
/**
?* @author gorit
?* @date 2019年4月10日
?* 對象數(shù)組的實例講解
?* */
import java.util.Scanner;
?
public class StudentTest {
? ? public static void main(String[] args) {
? ? ? ? System.out.println("請錄入學(xué)生姓名,學(xué)號、成績:");
? ? ? ? Scanner in=new Scanner(System.in);
//? ? ? ? int[] a=new int[3];對照數(shù)組的使用
//? ? ? 1、創(chuàng)建對象數(shù)組,Student類有三個屬性,所以傳入數(shù)據(jù)需要傳三個數(shù)據(jù)
? ? ? ? Student[] s=new Student[5];//對象數(shù)組的創(chuàng)建是一樣的
? ? ? ? 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;//創(chuàng)建一個為空的對象進(jìn)行數(shù)據(jù)交換
? ? ? ? //根據(jù)學(xué)生的成績進(jìn)行排序,這里運用冒泡排序
? ? ? ? for(int i=0;i<s.length;i++) {
? ? ? ? ? ? for (int j =0; j < s.length; j++) {
? ? ? ? ? ? ? ? if(j!=4)//這里必須加上這個條件,不然數(shù)字會報出越界的問題
? ? ? ? ? ? ? ? if(s[j].getGrades()<s[j+1].getGrades()) {
? ? ? ? ? ? ? ? ? ? s1=s[j+1];
? ? ? ? ? ? ? ? ? ? s[j+1]=s[j];
? ? ? ? ? ? ? ? ? ? s[j]=s1;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ??????
? ? ? ? System.out.println("學(xué)生的成績排名如下\n姓名\t學(xué)號\t成績");
? ? ? ? for (int i = 0; i < s.length; i++) {
? ? ? ? ? ? System.out.println(s[i].getName()+"\t"+s[i].getNum()+"\t"+s[i].getGrades());
? ? ? ? }
? ??????
? ? }
}
?
程序運行結(jié)果
總結(jié)
以上是生活随笔為你收集整理的[转载] Java中对象数组的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: she is so css什么意思,输入
- 下一篇: redission java_Java注