面向对象学习笔记6 - 对象数组

分类: 365金融投注 时间: 2025-10-04 03:24:51 作者: admin 阅读: 7896 点赞: 363
面向对象学习笔记6 - 对象数组

一、对象数组基础概念

当数组元素是引用数据类型中的类时,称为对象数组。例如Student[]数组,每个元素都是一个Student对象。

二、基础实现案例

1. 学生类定义

public class Student {

int number; // 学号

int state; // 年级(1-6)

int score; // 成绩(0-100)

}

2. 创建并初始化对象数组

public class StudentTest {

public static void main(String[] args) {

Student[] students = new Student[20];

for(int i=0; i

students[i] = new Student();

students[i].number = i+1;

students[i].state = (int)(Math.random()*6 + 1);

students[i].score = (int)(Math.random()*101);

}

}

}

3. 问题一实现:打印三年级学生

for(int i=0; i

Student stu = students[i];

if(3 == stu.state){

System.out.println("number:" + stu.number + ",state:" + stu.state + ",score:" + stu.score);

}

}

4. 问题二实现:冒泡排序成绩

// 错误实现(仅交换分数)

for(int i=0; i

for(int j=0; j

if(students[j].score > students[j+1].score){

int temp = students[j].score;

students[j].score = students[j+1].score;

students[j+1].score = temp;

}

}

}

// 正确实现(交换对象引用)

for(int i=0; i

for(int j=0; j

if(students[j].score > students[j+1].score){

Student temp = students[j];

students[j] = students[j+1];

students[j+1] = temp;

}

}

}

三、代码优化步骤

1. 添加对象信息显示方法

public class Student {

// ...原有属性

public String show() {

return "number:" + number + ",state:" + state + ",score:" + score;

}

}

// 优化后的打印调用

System.out.println(stu.show());

2. 创建工具类降低耦合度

public class StudentUtil {

// 打印指定年级学生

public void printStudentsWithIndex(Student[] students, int state) {

for(Student stu : students){

if(stu.state == state){

System.out.println(stu.show());

}

}

}

// 遍历所有学生

public void printStudents(Student[] students) {

for(Student stu : students){

System.out.println(stu.show());

}

}

}

3. 测试类优化调用

public static void main(String[] args) {

// ...初始化代码

StudentUtil util = new StudentUtil();

System.out.println("---三年级学生---");

util.printStudentsWithIndex(students, 3);

System.out.println("---排序后结果---");

util.printStudents(students);

}

四、常见错误总结

对象未实例化:students[i] = new Student(); 必须创建对象实例

错误交换逻辑:排序时应交换对象引用而非单独交换分数

中英文字符混用:代码中的分号和逗号必须使用英文符号

方法声明错误:public static void main 正确的方法签名

五、关键知识点

• 对象数组的初始化需要双重操作:new Student[20] + 每个元素的new Student()

• 冒泡排序时间复杂度为O(n²),适合小规模数据排序

• 工具类的封装降低了代码耦合度,符合单一职责原则

相关推荐

水滴筹怎么发起?如何操作?做到这些筹款滴水不漏
365体育平台bet下载入口

水滴筹怎么发起?如何操作?做到这些筹款滴水不漏

📅 07-06 👁️ 7282
中国足球协会官方网站
365体育平台bet下载入口

中国足球协会官方网站

📅 08-10 👁️ 9242
如何通过微信二维码轻松报名?教你使用微信报名流程!
365体育平台bet下载入口

如何通过微信二维码轻松报名?教你使用微信报名流程!

📅 07-18 👁️ 6909