[轉載] 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.pswp.cn/news/540342.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540342.shtml
英文地址,請注明出處:http://en.pswp.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;服務器的故障導致整個公司無…