JavaSE——面向对象基础(4/4)-成员变量和局部变量的区别、面向对象综合案例(电影信息系统)

目录

补充:成员变量和局部变量的区别

面向对象综合案例

设计一个电影类

IDEA快捷操作

设计一个电影操作类

准备电影数据

业务处理

运行结果


补充:成员变量和局部变量的区别

区别成员变量(对象的属性)局部变量
类中位置不同类中,方法外常见于方法中
初始化值不同有默认值,不需要初始化赋值没有默认值,使用之前必须完成赋值
内存位置不同堆内存栈内存
作用域不同整个对象在所归属的大括号中
生命周期不同与对象共存亡随着方法的调用而生,随着方法的运行结束而亡

面向对象综合案例

需求

  • 展示系统中的全部电影(每部电影展示:名称、价格)。
  • 允许用户根据电影编号(id)查询出某个电影的详细信息。

设计一个电影类

public class Movie {private int id;private String name;private double price;private double score;private String director;private String actor;private String info;public Movie(int id, String name, double price, double score, String director, String actor, String info) {this.id = id;this.name = name;this.price = price;this.score = score;this.director = director;this.actor = actor;this.info = info;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}public String getDirector() {return director;}public void setDirector(String director) {this.director = director;}public String getActor() {return actor;}public void setActor(String actor) {this.actor = actor;}public String getInfo() {return info;}public void setInfo(String info) {this.info = info;}
}

IDEA快捷操作

快速生成有参构造器:

快速生成成员变量赋值取值的方法:

设计一个电影操作类

1.展示电影全部信息

public class MovieOperator {public MovieOperator(){}private Movie[] movies;  //建立一个对象数组用来存放多部电影的信息public MovieOperator(Movie[] movies){this.movies = movies;}//1.展示电影全部信息public void printAllMovie(){System.out.println("-------系统全部电影信息如下-------");for(int i = 0;i < movies.length;i++){Movie m = movies[i];  //临时建立一个电影对象用来取到对象数组里面的数据System.out.println("编号:" + m.getId());System.out.println("名称:" + m.getName());System.out.println("价格:" + m.getPrice());System.out.println("----------------------" );}}
}

2.根据电影的编号查询电影的详细信息并展示

//2.根据电影的编号查询电影的详细信息并展示public void searchMovieById(int id){for(int i = 0; i < movies.length;i++){Movie m = movies[i];if(m.getId() == id){System.out.println("该电影详情如下:");System.out.println("编号:" + m.getId());System.out.println("名称:" + m.getName());System.out.println("价格:" + m.getPrice());System.out.println("得分:" + m.getScore());System.out.println("导演:" + m.getDirector());System.out.println("主演:" + m.getActor());System.out.println("其他信息:" + m.getInfo());return;  //找到了电影信息,就可以直接返回了}}System.out.println("没有该电影信息");}
}

准备电影数据

随意发挥

public class MovieTest {public static void main(String[] args) {Movie[] movies = new Movie[4]; //存放四部电影的信息movies[0] = new Movie(1,"水门桥",38.9,9.8,"徐克","吴京","12万人想看");movies[1] = new Movie(2,"深海",55.5,7.2,"田晓鹏","苏鑫、王亭文","上映第10天,总票房破5亿元");movies[2] = new Movie(3,"出拳吧",39,7.8,"唐晓白","田雨","3.5万人想看");movies[3] = new Movie(4,"一点就到家",35,8.7,"许宏宇","刘昊然","10.8万人想看");}
}

业务处理

创建一个电影操作类的对象,接收电影数据,并对其进行业务处理

public class MovieTest {public static void main(String[] args) {Movie[] movies = new Movie[4]; //存放四部电影的信息movies[0] = new Movie(1,"水门桥",38.9,9.8,"徐克","吴京","12万人想看");movies[1] = new Movie(2,"深海",55.5,7.2,"田晓鹏","苏鑫、王亭文","上映第10天,总票房破5亿元");movies[2] = new Movie(3,"出拳吧",39,7.8,"唐晓白","田雨","3.5万人想看");movies[3] = new Movie(4,"一点就到家",35,8.7,"许宏宇","刘昊然","10.8万人想看");//创建一个电影操作类的对象,接收电影数据,并对其进行业务处理MovieOperator operator = new MovieOperator(movies);Scanner sc = new Scanner(System.in);while(true){System.out.println("===电影信息系统===");System.out.println("1.查询全部电影信息");System.out.println("2.根据ID查询某个电影的详细信息显示");System.out.println("请您输入操作命令:");int command = sc.nextInt();switch (command){case 1:operator.printAllMovie();break;case 2:System.out.println("请您输入查询的电影id:");int id = sc.nextInt();operator.searchMovieById(id);break;default:System.out.println("您输入的命令有问题,请重新输入");}}}
}

运行结果


END


学习自:黑马程序员——JavaSE课程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】双向链表

一、main函数 #include <stdio.h> #include "./3.doublelinklist.h" int main(int argc, const char *argv[]) {doublelinklist* head creatr_doublelinklist();insertHead_doublelinklist(head,999);insertHead_doublelinklist(head,888);insertHead_double…

家装服务管理:Java技术的创新应用

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

29-资源清单的管理工具-helm

一、helm的介绍 1&#xff0c;helm的价值概述 如下图所示&#xff0c;在一个企业中&#xff0c;可能存在多个不同的应用业务&#xff0c;每个业务可能包含多至十几、甚至几十个资源清单&#xff0c;那么对于“运维”和“研发”人员来讲&#xff0c;这么多的资源清单&#xff0…

分布式知识整理

分布式锁 以商场系统超卖现象举例 超卖现象一 现象&#xff1a; 商品卖出数量超出了库存数量。 产生原因&#xff1a; 扣减库存的动作在程序中进行&#xff0c;在程序中计算剩余库存&#xff0c;在并发场景下&#xff0c;导致库存计算错误。 代码复现 es.shutdown(); cycl…

Nest.js权限管理系统开发(五)返回格式化

返回格式化拦截器 在上一篇《Nest.js权限管理系统开发&#xff08;四&#xff09;Swagger API接入》中&#xff0c;我们在base.controller.ts中创建了多个接口&#xff0c;每个接口都有不同的返回类型。现实中我们往往需要统一返回数据的格式&#xff0c;例如&#xff1a; {&…

conda 导出/导出配置好的虚拟环境

一. 导出环境配置&#xff08;yml文件&#xff09; 1. 在主目录下激活虚拟环境&#xff08;UE4是我的虚拟环境名称&#xff0c;请根据你自己的名称进行修改&#xff09; conda activate UE4 2. 运行此代码 conda env export > environment.yml 二. 导入环境配置&#xf…

python统计分析——多解释变量的方差分析

参考资料&#xff1a;用python动手学统计学 1、导入库 # 导入库 # 用于数值计算的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 用于绘图的库 from matplotlib import pyplot as plt import seaborn as sns sns.set() # 用于估计…

Linux基础命令—进程管理

基础知识 linux进程管理 什么是进程 开发写代码->代码运行起来->进程 运行起来的程序叫做进程程序与进程区别 1.程序是一个静态的概念,主要是指令集和数据的结合,可以长期存放在操作系统中 2.进程是一个动态的概念,主要是程序的运行状态,进程存在生命周期,生命周期结…

Seata分布式事务实战XATCC模式

目录 XA模式 XA 模式的使用 Spring Cloud Alibaba整合Seata XA TCC模式 TCC模式接口改造 TCC如何控制异常 Spring Cloud Alibaba整合Seata TCC XA模式 整体机制 在 Seata 定义的分布式事务框架内&#xff0c;利用事务资源&#xff08;数据库、消息服务等&#xff09;对…

【Python从入门到进阶】49、当当网Scrapy项目实战(二)

接上篇《48、当当网Scrapy项目实战&#xff08;一&#xff09;》 上一篇我们正式开启了一个Scrapy爬虫项目的实战&#xff0c;对当当网进行剖析和抓取。本篇我们继续编写该当当网的项目&#xff0c;讲解刚刚编写的Spider与item之间的关系&#xff0c;以及如何使用item&#xff…

【python】0、超详细介绍:json、http

文章目录 一、json二、http2.1 json 读取 request 序列化 三、基本类型3.1 decimal 四、图像4.1 颜色格式转换 一、json import json f open(data.json) # open json file data json.load(f) # 读出 json object for i in data[emp_details]: # 取出一级属性 emp_details, …

云尚办公-0.3.0

5. controller层 import pers.beiluo.yunshangoffice.model.system.SysRole; import pers.beiluo.yunshangoffice.service.SysRoleService;import java.util.List;//RestController&#xff1a;1.该类是控制器&#xff1b;2.方法返回值会被写进响应报文的报文体&#xff0c;而…

ChatRTX安装教程

介于本人一直想将现有的智慧城市的文档结合大模型RAG实现知识库问答助手&#xff0c;借着Chat With RTX的风潮正好将机器人和知识库合二为一&#xff0c;方便以后对众多文件进行查阅。 一、概要 Chat With RTX 是一个 Demo&#xff0c;用来将您自己的资料&#xff08;文档、笔…

第三节:kafka sarama 遇到Bug?

文章目录 前言一、先上结果二、刨根问底总结 前言 前面两节&#xff0c;我们已经简单应用了sarama的两个类型Client和ClusterAdmin&#xff0c;其中有一个案例是获取集群的ControllerId&#xff0c;但是在后面的测试过程过程中&#xff0c;发现一个问题&#xff0c;返回的Cont…

【PyQt5桌面应用开发】3.Qt Designer快速入门(控件详解)

一、Qt Designer简介 Qt Designer是PyQt程序UI界面的实现工具&#xff0c;可以帮助我们快速开发 PyQt 程序的速度。它生成的 UI 界面是一个后缀为 .ui 的文件&#xff0c;可以通过 pyiuc 转换为 .py 文件。 Qt Designer工具使用简单&#xff0c;可以通过拖拽和点击完成复杂界面…

仿12306校招项目业务二(列车检索)

目录 验证数据 加载城市数据 查询列车站点信息 查询列车余票信息 构建列车返回数据 12306 项目中列车数据检索接口路径 &#xfeff; TicketController的pageListTicketQuery&#xfeff;。 GetMapping("/api/ticket-service/ticket/query")public Result<T…

查看笔记本电池健康状态-windows11

在 Windows 11 中获取详细的电池报告 Windows 11 中内置的 Powerfg 命令行选项来生成电池报告。 在任务栏上选择“搜索”&#xff0c;键入“cmd”&#xff0c;长按&#xff08;或右键单击&#xff09;“命令提示符”&#xff0c;然后选择“以管理员身份运行” ->“是”。 …

Mac使用K6工具压测WebSocket

commend空格 打开终端&#xff0c;安装k6 brew install k6验证是否安装成功 k6 version设置日志级别为debug export K6_LOG_LEVELdebug执行脚本&#xff08;进入脚本所在文件夹下&#xff09; k6 run --vus 100 --duration 10m --out csvresult.csv script.js 脚本解释&…

自定义神经网络三之梯度和损失函数激活函数

文章目录 前言梯度概述梯度下降算法梯度下降的过程 optimize优化器 梯度问题梯度消失梯度爆炸 损失函数常用的损失函数损失函数使用原则 激活函数激活函数和损失函数的区别激活函数Relu-隐藏层激活函数Sigmoid和Tanh-隐藏层Sigmoid函数Tanh&#xff08;双曲正切&#xff09; &l…

【前端】nginx 反向代理,实现跨域问题

前面讲跨域的问题&#xff0c;这篇 C# webapi 文章里面已经说过了。在上述文章中是属于从服务器端去允许访问的策略去解决跨域问题。而这里是从客户端的角度利用反向代理的方法去解决跨域问题。 反向代理&#xff1a;其原理就是将请求都接收到一个中间件&#xff08;中间地址&a…