目录
在本篇博客中,我们将分析一个简单的Java项目,该项目模拟了一个电影管理系统。系统由五个主要类组成:MovieSystem、Movie、User、Business和Customer。每个类都扮演着不同的角色,协同工作以实现系统的功能。让我们逐一了解这些类的实现。
MovieSystem 类
首先,我们来看MovieSystem类。这个类的主要功能是管理电影信息,并通过控制台与用户交互。
import java.util.Scanner;
public class MovieSystem {
private String name;
private int year;
private String rating;
public MovieSystem() {
name = "Inception";
year = 2010;
rating = "PG";
}
public MovieSystem(String name, int year, String rating) {
this.name = name;
this.year = year;
this.rating = rating;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setYear(int year) {
this.year = year;
}
public int getYear() {
return year;
}
public void setRating(String rating) {
this.rating = rating;
}
public String getRating() {
return rating;
}
public void display() {
System.out.println("Movie: " + name);
System.out.println("Year: " + year);
System.out.println("Rating: " + rating);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the movie name:");
String movieName = sc.nextLine();
System.out.println("Enter the release year:");
int releaseYear = sc.nextInt();
sc.nextLine(); // Consume newline character
System.out.println("Enter the rating:");
String movieRating = sc.nextLine();
MovieSystem movie = new MovieSystem(movieName, releaseYear, movieRating);
movie.display();
sc.close();
}
}
代码分析
- 成员变量 :
name、year和rating用于存储电影的名称、年份和评级。 - 构造函数:提供了默认构造函数和带参数的构造函数,允许创建具有默认或特定信息的电影对象。
- 方法 :包括设置和获取电影信息的方法,以及用于显示电影信息的
display方法。 - 主方法 :通过
Scanner类与用户交互,获取电影信息并显示。
Movie 类
接下来,我们来看Movie类,该类用于表示一个电影对象。
public class Movie {
private String title;
private int releaseYear;
private String genre;
private double rating;
public Movie(String title, int releaseYear, String genre, double rating) {
this.title = title;
this.releaseYear = releaseYear;
this.genre = genre;
this.rating = rating;
}
public String getTitle() {
return title;
}
public int getReleaseYear() {
return releaseYear;
}
public String getGenre() {
return genre;
}
public double getRating() {
return rating;
}
public void displayInfo() {
System.out.println("Title: " + title);
System.out.println("Release Year: " + releaseYear);
System.out.println("Genre: " + genre);
System.out.println("Rating: " + rating);
}
}
代码分析
- 成员变量 :
title、releaseYear、genre和rating用于存储电影的详细信息。 - 构造函数:允许创建一个带有详细信息的电影对象。
- 方法 :包括用于访问电影信息的getter方法和用于显示信息的
displayInfo方法。
User 类
User类表示系统中的用户,包括基本的用户信息。
public class User {
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public boolean authenticate(String password) {
return this.password.equals(password);
}
}
代码分析
- 成员变量 :
username和password存储用户的登录信息。 - 构造函数:用于初始化用户信息。
- 方法 :包括获取用户名的方法和用于验证密码的
authenticate方法。
Business 类
Business类用于表示一个商业用户,继承自User类,并增加了商业用户特有的信息。
public class Business extends User {
private String businessName;
public Business(String username, String password, String businessName) {
super(username, password);
this.businessName = businessName;
}
public String getBusinessName() {
return businessName;
}
}
代码分析
- 继承关系 :
Business继承自User类,重用了用户认证的功能。 - 新增成员变量 :
businessName用于存储商业用户的公司名称。 - 构造函数:初始化商业用户的信息。
Customer 类
Customer类表示普通用户,继承自User类,增加了一些消费者特有的信息。
public class Customer extends User {
private String email;
public Customer(String username, String password, String email) {
super(username, password);
this.email = email;
}
public String getEmail() {
return email;
}
}
代码分析
继承关系 :
Customer类继承自User类。新增成员变量 :
email用于存储消费者的邮箱地址。构造函数:用于初始化消费者的信息。
*总结
通过以上分析,我们了解了一个简单的Java电影管理系统的基本构建方式。该系统通过多个类协同工作,以面向对象的方式管理电影和用户信息。每个类都承担了特定的职责,遵循了单一责任原则,使得代码清晰易于维护。这种设计模式在现实开发中非常常见,尤其是在需要管理复杂数据结构的应用中。
如有任何问题或需要进一步的解释,请随时留言!
原文链接: https://blog.csdn.net/2302_80084329/article/details/141003428