題目
代碼
package lesson.l10_oop;
/**
* Illustration
*
* @author DengQing
* @version 1.0
* @datetime 2022/7/1 9:57
* @function
*/
public class Student {
int number;
int state;
int score;
public static final int NUM = 20;
public static void main(String[] args) {
// 對象數組
Student[] students = new Student[NUM];
for (int i = 0; i < NUM; i++) {
// 給數組元素指派
students[i] = new Student();
// 給Student對象的屬性指派
students[i].number = i + 1;
// [1-9]:(_9-1+1)+1
students[i].state = (int) (Math.random() * 9) + 1;
// [0-100]
students[i].score = (int) (Math.random() * 99);
}
Student student = new Student();
// 查找學生資訊
student.searchState(students, 3);
// 冒泡排序
student.bubbleSort(students);
student.print(students);
}
// 查找學生資訊
public void searchState(Student[] students, int state) {
System.out.println(state + "年紀的學生資訊:");
for (Student s :
students) {
if (s.state == state) {
System.out.print(s.toString() + "\n");
}
}
}
// 列印數組
public void print(Student[] students) {
for (Student s :
students) {
System.out.println(s.toString());
}
}
//冒泡排序
public void bubbleSort(Student[] students) {
System.out.println("冒泡排序:");
for (int i = 0; i < students.length - 1; i++) {
for (int j = 0; j < students.length - 1 - i; j++) {
if (students[j].score > students[j + 1].score) {
Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
}
//交換
public void exchange(Student a, Student b) {
a.number = a.number ^ b.number;
b.number = a.number ^ b.number;
a.number = a.number ^ b.number;
a.state = a.state ^ b.state;
b.state = a.state ^ b.state;
a.state = a.state ^ b.state;
a.score = a.score ^ b.score;
b.score = a.score ^ b.score;
a.score = a.score ^ b.score;
}
//列印Student
@Override
public String toString() {
return "Student{" +
"number=" + number +
", state=" + state +
", score=" + score +
'}';
}
}
記憶體解析