1 package day1_2; 2 3 /** 4 * 定義類Student,包含三個屬性,學號number(int),年級state(int),分數score(int) 5 * 建立20個學生對象,學號爲1-20號,年級[1,6]和分數[0,100]隨機數肯定 6 * 問題一:打印出3年級學生的信息 7 * 問題二:將學生的成績按照冒泡排序,並打印學生信息 8 */ 9 10 public class ObjectExer { 11 public static void main(String[] args) { 12 //聲明一個Student類型數組 13 Student[] students = new Student[20]; 14 for (int i = 0; i < students.length; i++) { 15 //每一個數組元素引用一個學生對象 16 students[i] = new Student(); 17 //給每一個學生對象屬性賦值 18 //學號[1,20] 19 students[i].number = i+1; 20 //年級[1,6] 21 //Math.random() 返回值double類型 [0,1) 22 //使用公式 (int)(Math.random()*(max-min+1)+min) 23 students[i].state = (int)(Math.random()*(6-1+1)+1); 24 //成績[0,100] 25 //Math.random() 返回值double類型 [0,1) 26 //方式一 27 students[i].score = (int)(Math.random()*(100-0+1)); 28 //方式二 29 //Math.round(double n) 返回值long類型 對n進行四捨五入 30 //students[i].score = (int)Math.round(Math.random()*100); 31 } 32 //遍歷學生信息 33 for (int i = 0; i < students.length; i++) { 34 System.out.println(students[i].info()); 35 } 36 37 System.out.println("***************"); 38 //打印出3年級學生的信息 39 for (int i = 0; i < students.length; i++) { 40 if(students[i].state == 3){ 41 System.out.println(students[i].info()); 42 } 43 } 44 45 System.out.println("**********************"); 46 //將學生的成績按照冒泡排序,並打印學生信息 47 for (int i = 0; i < students.length - 1; i++) { 48 for (int j = 0; j < students.length-i-1; j++) { 49 if (students[j].score > students[j+1].score) { 50 //注意:是交換學生的位置,而不是交換學生的成績 51 Student tmp = students[j]; 52 students[j] = students[j + 1]; 53 students[j+1] = tmp; 54 } 55 } 56 } 57 58 //遍歷排序後的學生數組 59 for (int i = 0; i < students.length; i++) { 60 System.out.println(students[i].info()); 61 } 62 63 64 } 65 } 66 67 class Student{ 68 int number;//學號 69 int state;//年級 70 int score;//成績 71 72 //顯示學生信息 73 public String info() { 74 return "學號:" + number + ",班級:"+ state + ",分數:" + score; 75 } 76 }