首先设计Movie类封装电影信息与评分数组,再实现添加评分和计算平均分方法,通过对象数组管理多部电影的评分数据。

在Java中实现电影评分管理功能,是掌握对象数组操作的典型应用场景。通过这个小项目,不仅能加深对类与对象的理解,还能熟练运用数组存储和操作自定义对象,提升逻辑处理能力。
设计电影类(Movie)
首先定义一个Movie类,用于封装电影的基本信息和评分数据。
包含字段如:电影名称、导演、上映年份、评分数组等。使用double数组保存多个用户对该电影的评分,并提供添加评分、计算平均分等方法。
示例代码:
public class Movie {
private String title;
private String director;
private int year;
private double[] ratings;
private int ratingCount;
public Movie(String title, String director, int year, int maxRatings) {
this.title = title;
this.director = director;
this.year = year;
this.ratings = new double[maxRatings];
this.ratingCount = 0;
}
// 添加评分
public boolean addRating(double score) {
if (ratingCount < ratings.length && score >= 0 && score <= 10) {
ratings[ratingCount++] = score;
return true;
}
return false;
}
// 计算平均分
public double getAverageRating() {
if (ratingCount == 0) return 0.0;
double sum = 0;
for (int i = 0; i < ratingCount; i++) {
sum += ratings[i];
}
return sum / ratingCount;
}
// 显示电影信息
public void displayInfo() {
System.out.println("电影名: " + title);
System.out.println("导演: " + director);
System.out.println("年份: " + year);
System.out.println("平均评分: " + String.format("%.2f", getAverageRating()));
System.out.println("评分人数: " + ratingCount);
System.out.println("---------------------------");
}
}
使用对象数组管理多部电影
创建Movie对象数组,用来存储多个电影实例。通过循环遍历数组,调用每个对象的方法进行评分录入和信息展示。
立即学习“Java免费学习笔记(深入)”;
注意初始化每个Movie对象,并合理设定最大评分数量,避免数组越界。
示例代码:
public class MovieRatingManager {
public static void main(String[] args) {
// 创建可容纳3部电影的对象数组
Movie[] movies = new Movie[3];
// 初始化电影对象
movies[0] = new Movie("肖申克的救赎", "弗兰克·德拉邦特", 1994, 100);
movies[1] = new Movie("霸王别姬", "陈凯歌", 1993, 80);
movies[2] = new Movie("阿甘正传", "罗伯特·泽米吉斯", 1994, 90);
// 为电影添加评分
movies[0].addRating(9.5);
movies[0].addRating(9.8);
movies[0].addRating(9.2);
movies[1].addRating(9.6);
movies[1].addRating(9.3);
movies[2].addRating(9.4);
movies[2].addRating(9.7);
movies[2].addRating(9.1);
movies[2].addRating(9.0);
// 输出所有电影评分信息
for (Movie movie : movies) {
movie.displayInfo();
}
}
}
关键技巧与注意事项
操作对象数组时,有几个重点需要掌握:
- 对象数组本身只存储引用,必须通过new关键字逐个实例化每个元素,否则会抛出NullPointerException。
- 评分数组建议设置上限,模拟真实系统中的容量限制,同时防止内存无限增长。
- 封装性很重要,评分数组应设为private,通过公共方法访问,确保数据安全。
- 平均分计算时注意评分数量为0的情况,避免除以零错误。
- 可扩展方向包括:按评分排序、查找最高分电影、支持用户ID去重评分等。
基本上就这些。通过这个练习,你已经掌握了如何用Java对象数组管理复杂数据,理解了类的设计原则和数组的操作方式。不复杂但容易忽略细节,写代码时多注意边界条件和空指针问题。










