首页 > 其他分享 >类和对象综合案例——模仿电影信息系统

类和对象综合案例——模仿电影信息系统

时间:2024-11-24 23:34:18浏览次数:11  
标签:构造方法 信息系统 start 创建 案例 数组 方法 我们 模仿

1.需求

2.实际操作

1.创建一个实体类

首先第一件事,就是写好一个实体类,为后面封装所有数据做准备,我们只需要私有化成员变量,然后再ptg即可



2.创建处理业务类和测试类

写好了实体类就要开始处理业务了,所以我们要再创建一个专门处理业务的类,名为MovieService

写完了业务类后别着急,再创建一个测试类。我们肯定要在测试类里创建业务类对象,然后使用业务类方法start,用于开启电影信息系统

但由于我们业务类没有写start方法,测试类会报错,这时我们点击start,然后alt +回车即可快捷创建start方法


3.开始在start方法里写处理业务的代码

1.首先我们要写一个菜单提供给用户

在菜单里也知道需要键盘录入,要录根据用户输入的数来选择哪些功能

毫无疑问,需要使用switch来判断用户输入的数以此选择不同的功能

接着在测试类使用start方法,很明显,这样写只能循环一次,不能达到我们的预期,所以我们还需要使用无限循环,直到用户输入3时,才结束系统

使用快捷键 ctrl alt t 选择我们要包裹的代码,快速包裹 这里选择while

再给while一个标号,让case3的break结束循环

4.在测试类里封装数据

写完了菜单后,就该封装所有数据了

需要注意,在实体类里,ptg有带参数的构造方法,那我们创建对象的时候就用上这个构造方法,写出实参,从而快速赋值

赋值完后,我们发现movie1 2 3都是同一个类型,并且有多个数据,这不禁让我们想起数组,但数组可以储存对象吗?

答案是可以,数组储存数字,就是int类型,那数组储存对象,不就是该对象的类型嘛

5.将数据从一个类中传递到另一个类中

封装好所有数据后就该进行使用,处理业务了。但我们的数据放在了测试类,而我们又得在业务类调用数据写代码,那我们该怎么把一个类的数据传递给另外一个类?

很简单,我们肯定要在测试类里创建业务类的对象,那我们就直接把数组(存着所有数据)放进创建好的对象的实参中

想一想为什么可以这样操作?(这里报错是还未创建构造方法)

之前我们在说方法内存图的时候说过,方法的形参也是一种变量,该变量的值根据主方法里的参数所确定,你是什么,我就是什么

所以,我们先将数组丢入创建的对象的实参中,然后再alt 回车 在业务类中创建带参的构造方法,这时数组的所有数据就已经传入到业务类里了

6.开始处理展示系统中全部电影的名称和评分

当数据进入业务类后,就可以开始写具体功能了。

功能一要展示所有电影的名称和评分,所以肯定要遍历数组,但我们可以直接在构造方法里遍历数组吗?

答案是不能,因为我们要根据用户输入的数字来确定选择哪些功能,当用户输入1时,才是打印所有电影的名称和评分,所以我们要在case1里遍历数组

我们将case1的打印改成方法,alt 回车快速生成方法

在方法里遍历数组

竟然爆红了,为什么会爆红?原因就是因为movies这个数组现在是局部变量,只能存在于构造方法里,出了括号就用不了

解决的方法也很简单,我们直接创建一个成员变量,让局部变量movies给成员变量赋值,这样就可以在类里使用数组了

遍历完数组之后,先试着打印一下数组


打印出来的竟然是一堆地址,可见,数组存储对象时,并非直接把对象的数据存入,而是存入对象的地址,然后根据地址调用数据

地址对我们来说没用,那我们该如何打印出名称和评分呢?

使用get方法即可解决



当i=1,movie=movie1,movie调用get方法

get tittle里的return tittle找到movie1的名称即东八区的先生们

谁调用的get方法,return就把值返回给谁,所以movie.gettittle=“东八区的先生们”那么此时打印的就是这个名称

7.处理电影详细信息

写完功能一,接着写功能二,功能二要放在case2里写

要根据用户输入id的数字来确定该打印什么,所以要键盘录入

但没必要再重新召唤Scanner,我们上面就写了一个

但上面的Scannner也只能在start里使用,那我们就再一次把Scanner也给提到类里

获取到用户输入的id,遍历数组,获取三个电影的id,依旧是使用get方法获取,然后进行对比即可

找到了之后就输出所有信息

使用return结束循环,如果用户输入的id不是电影的id,还需要提醒,所以再写一个提醒语句

当走完整个循环后依旧没有if到,那么就会输出打印语句,否则直接return结束循环

到此,所有代码写完,案例结束






标签:构造方法,信息系统,start,创建,案例,数组,方法,我们,模仿
From: https://www.cnblogs.com/zhishi6/p/18566603

相关文章

  • 信息系统密码应用高风险判定指引
    文章目录信息系统密码应用高风险判定指引作业内容要求学习笔记1.信息系统密码应用高风险判定指引标准2.标准条款解读及高风险问题的判定3.高风险判定指引在测评和风险管理中的应用4.标准制定背景、目的和实际应用情况实验4中应用与数据安全层面的高风险分析及规避措......
  • Redis使用案例之限流器
    Redis使用案例之限流器一、什么是限流器限流器是一种流量限制的工具,可用于防止接口在同一时间有过高的并发Redis有两种实现限流器的算法1.基于桶令牌的算法​以时间段为单位,恒定的给桶中放入令牌,每次请求从桶中获取令牌2.基于漏桶算法​控制接口流速,先创建一个桶,......
  • 深入理解MySQL中的AUTO_INCREMENT属性:从案例到原理
    深入理解MySQL中的AUTO_INCREMENT属性:从案例到原理引言在数据库设计中,AUTO_INCREMENT是一种常见的属性,用于确保表中的某个字段在插入新记录时自动递增。尽管它不是传统意义上的约束,但在功能上确实起到了约束的作用,确保了字段的唯一性、非空性和自动递增性。本文将通过一个具体......
  • 大厂案例:Shopee 百亿级商品数据如何平稳实现千万级服务器成本缩减
    声明:本文中的细节来源于Shopee研发团队于2024年深圳ArchSummit上的分享。所有的技术细节都要归功于Shopee研发团队。原始内容和其他参考资料的链接在文章末尾的参考资料部分。本文试图分析细节并提供我们的意见。如果您发现任何不准确或遗漏,请留下评论,我们将尽力修复......
  • MySQL原理简介—6.简单的生产优化案例
    大纲1.MySQL日志的顺序写和数据文件的随机读指标2.Linux存储系统软件层原理及IO调度优化原理3.数据库服务器使用的RAID存储架构介绍4.数据库Toomanyconnections故障定位 1.MySQL日志的顺序写和数据文件的随机读指标(1)磁盘随机读操作(2)磁盘顺序写操作 (1)磁盘随机......
  • 道德与法治案例分析题答题技巧
    例如1:随着经济的发展、人民生活水平的提高,在许多学校的学生中,也出现了“手机族”。校园里,朗朗的读书中经常夹杂着此起彼伏的手机声。而有许多同学对手机的档次要求,也越来越高,你的是“彩玲”的,我就要“拍照”的,更有的同学上课也发起了短信。同学们议论纷纷,有的同学认为:“现在生活条......
  • (2024最新毕设合集)基于SpringBoot的校园共享厨房信息系统-72647|可做计算机毕业设计JAV
    目 录摘要第一章 绪论1.1选题背景与意义1.2研究现状1.3论文结构与章节安排第二章系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3操作可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.3 系统用例分......
  • 鸿蒙NEXT开发案例:二维码的生成与识别
    【引言】在本篇文章中,我们将探讨如何在鸿蒙NEXT平台上实现二维码的生成与识别功能。通过使用ArkUI组件库和相关的媒体库,我们将创建一个简单的应用程序,用户可以生成二维码并扫描识别。【环境准备】•操作系统:Windows10•开发工具:DevEcoStudioNEXTBeta1BuildVersion:5......
  • ssm178高校工会提案管理信息系统的设计与开发+jsp(论文+源码)_kaic
     毕业设计(论文)题目:高校工会提案管理信息系统设计与实现摘 要现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本高校工会提案管理信息系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内......
  • Playwright进行异步爬取案例
    1.代码功能概述该代码使用Playwright异步库编写,用于抓取一个目标网站的数据。主要任务包括:加载网页:访问指定页面并等待加载完成。解析网页内容:提取数据如标题、封面图片、分类、评分、简介等。存储数据:将抓取到的数据以特定格式保存到本地文件中。2.代码结构解析1.......