锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. 电影管理系统

电影管理系统

0
  • 软件开发
  • 发布于 2024-09-21
  • 0 次阅读
黄健
黄健

目录

MovieSystem 类

代码分析

Movie 类

代码分析

User 类

代码分析

Business 类

代码分析

Customer 类

代码分析

总结



在本篇博客中,我们将分析一个简单的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

标签: #软件开发 1171
相关文章

万字:支付“核心系统”详解 2024-11-02 15:33

专栏作者:隐墨星辰 \| 主编:陈天宇宙 这篇文章也尝试化繁为简,探寻支付系统的本质,讲清楚在线支付系统最核心的一些概念和设计理念。 虽然支付行业已经过了风头最劲的时光,但跨境支付仍然在蓬勃发展,每年依然有很多新人进入这个行业,这篇文章尝试为这些刚入行的新人提供一点帮助。 文章只介绍一些支付行业十几

资深支付架构师视角:实战从问题定义到代码落地的完整套路 2024-11-02 15:33

前言 今天从一个实际案例入手,介绍站在架构师的角度,如何识别并定义问题,提炼需求,技术方案选型,再到详细设计,最后利用AI的能力协助写出核心的代码,验证与调优。 解决问题存在一定的模式,也可以称之为框架,总结出自己的思考和解题框架,以后再碰到同类型的问题就可以如庖丁解牛一样容易。 很多年前,我写代码

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

设计模式第16讲——迭代器模式(Iterator) 2024-10-08 11:24

一、什么是迭代器模式 迭代器模式是一种行为型设计模式,它提供了一种统一的方式来访问集合对象中的元素,而不是暴露集合内部的表示方式。简单地说,就是将遍历集合的责任封装到一个单独的对象中,我们可以按照特定的方式访问集合中的元素。 二、角色组成 抽象迭代器(Iterator):定义了遍历聚合对象所需的方法

vue2路由和vue3路由区别及原理 2024-10-08 11:24

一、Vue2 与 Vue3 路由的区别 1. 创建路由实例方式的不同 Vue 2 中,通过 Vue.use() 注册路由插件,并通过 new VueRouter() 来创建路由实例。 import Vue from 'vue';import VueRouter from 'vue-router';i

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.