自学Java-面向对象编程入门

自学Java-面向对象编程入门

  • 一、静态方法的注意事项
  • 二、简易版电影信息展示系统
    • 1、测试类
    • 2、电影类
    • 3、电影操作类

一、静态方法的注意事项

1、静态方法中可以直接访问静态成员,不可以直接访问实例成员
2、实例方法中既可以直接访问静态成员,也可以直接访问实例成员
3、实例方法中可以出现this关键字,静态方法中不可以出现this关键字的

package com.itheima.staticmethod;public class Test4 {// 静态变量public static int count = 100;public static void printHelloWorld2(){System.out.println("HelloWorld!");}// 实例变量:属于对象的。private String name;// 实例方法public void run(){}public static void main(String[] args) {// 目标:搞清楚静态方法,实例方法访问的几点注意事项。printHelloWorld();}// 1、静态方法中可以直接访问静态成员,不可以直接访问实例成员。public static void printHelloWorld(){System.out.println(count);printHelloWorld2();// System.out.println(name); // 报错// run(); // 报错// System.out.println(this); // 报错,this代表的只能是对象。}// 2、实例方法中既可以直接访问静态成员,也可以直接访问实例成员。public void go(){System.out.println(count);printHelloWorld2();System.out.println(name);run();}// 3、实例方法中可以出现this关键字,静态方法中不可以出现this关键字。public void eat(){System.out.println(this);}
}

二、简易版电影信息展示系统

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

目标:
使用所学的面向对象编程实现以上2个需求

1、测试类

package com.itheima.demo;public class Test {public static void main(String[] args) {// 目标:完成面向对象的综合小案例// 1、设计电影类Movie,以便创建电影对象,封装电影数据// 2、封装系统中的全部电影数据。(自己造一些数据)Movie[] movies = new Movie[6];movies[0] = new Movie(1, "《星际穿越》", 9.6, "安妮·海瑟薇");movies[1] = new Movie(2, "《速度与激情7》", 9.2, "博纳尔·罗伯森");movies[2] = new Movie(3, "《Transformers:天际线》", 9.1, "吉姆·罗恩");movies[3] = new Movie(4, "《速度与激情8》", 9.1, "博纳尔·罗伯森");movies[4] = new Movie(5, "《速度与激情9》", 9.1, "博纳尔·罗伯森");movies[5] = new Movie(6, "《速度与激情10》", 9.1, "博纳尔·罗伯森");// 3、创建电影操作对象出来,专门负责电影数据的业务操作MovieOperator mo = new MovieOperator(movies);mo.printAllMovies(); // ALT + 回车mo.searchMovieById();}
}

2、电影类

package com.itheima.demo;public class Movie {private int id; // 编号private String name;private double price;private String actor;// 定义一个无参数构造器public Movie() {}// 定义一个有参数构造器public Movie(int id, String name, double price, String actor) {this.id = id;this.name = name;this.price = price;this.actor = actor;}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 String getActor() {return actor;}public void setActor(String actor) {this.actor = actor;}
}

3、电影操作类

package com.itheima.demo;import java.util.Scanner;// 电影操作类
public class MovieOperator {private Movie[] movies; // 记住一个电影对象的数组public MovieOperator(Movie[] movies) {this.movies = movies;}// 打印全部电影信息public void printAllMovies() {System.out.println("编号\t电影名\t价格\t主演");for (int i = 0; i < movies.length; i++) {Movie m = this.movies[i];System.out.println(m.getId() + "\t" + m.getName() + "\t" + m.getPrice() + "\t" + m.getActor() + "\t");}}// 根据id查询电影public void searchMovieById() {System.out.println("请输入要查询的电影编号:");Scanner sc = new Scanner(System.in);int id = sc.nextInt();// 遍历每个电影对象for (int i = 0; i < movies.length; i++) {// 拿到当前遍历的电影对象Movie m = this.movies[i];// 判断当前电影对象的id是否是我们正在找的电影id,是则打印出该电影并立即结束方法。if (m.getId() == id) {System.out.println(m.getId() + "\t" + m.getName() + "\t" + m.getPrice() + "\t" + m.getActor() + "\t");return;}}System.out.println("没有找到该电影!");}
}

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

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

相关文章

python算法和数据结构刷题[3]:哈希表、滑动窗口、双指针、回溯算法、贪心算法

回溯算法 「所有可能的结果」&#xff0c;而不是「结果的个数」&#xff0c;一般情况下&#xff0c;我们就知道需要暴力搜索所有的可行解了&#xff0c;可以用「回溯法」。 回溯算法关键在于:不合适就退回上一步。在回溯算法中&#xff0c;递归用于深入到所有可能的分支&…

【自学笔记】Python的基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Python基础知识总览1. Python简介2. 安装与环境配置3. 基本语法3.1 变量与数据类型3.2 控制结构3.3 函数与模块3.4 文件操作 4. 面向对象编程&#xff08;OOP&#…

文件上传到腾讯云存储、签名及设置过期时间

将文件上传到腾讯云对象存储&#xff08;COS&#xff0c;Cloud Object Storage&#xff09;可以通过腾讯云提供的 SDK 实现。以下是详细的步骤和示例代码&#xff0c;帮助您完成文件上传操作。 步骤 注册腾讯云账号并创建存储桶&#xff1a; &#xff08;1&#xff09;登录腾讯…

基于Java(SpringBoot)+MySQL+Vue实现的平行志愿录取系统

基于spring bootvue实现的平行志愿录取系统 1.项目简介 这两天干上高考出成绩&#xff0c;有不少亲戚家的孩子今年高考&#xff0c;和我询问关于报志愿的问题。老家河北今年是采用所谓的平行志愿。我看了很多的资料才明白什么叫所谓的“平行志愿”。 整个流程好像很是复杂。…

chrome浏览器chromedriver下载

chromedriver 下载地址 https://googlechromelabs.github.io/chrome-for-testing/ 上面的链接有和当前发布的chrome浏览器版本相近的chromedriver 实际使用感受 chrome浏览器会自动更新&#xff0c;可以去下载最新的chromedriver使用&#xff0c;自动化中使用新的chromedr…

Redis常见数据类型与编码方式

⭐️前言⭐️ 本小节围绕Redis中常见的数据类型与编码方式展开。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博主日常练习代码均已上传GitHu…

win编译openssl

一、perl执行脚本 1、安装perl脚本 perl安装 2、配置perl脚本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、编译openssl 1、使用vs工具编译nmake 如果使用命令行nmake编译会提示“无法打开包括文件: “limits.h”“ 等错误信息 所以…

【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信

Kubernetes中Pod间的通信 本系列文章共3篇: 【Kubernetes Pod间通信-第1篇】在单个子网中使用underlay网络实现Pod到Pod的通信【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信(本文介绍)【Kubernetes Pod间通信-第3篇】Kubernetes中Pod与ClusterIP服务之间的通信…

< 自用文儿 > 下载 MaxMind GeoIP Databases 对攻击的 IP 做 地理分析

起因 两个 VPM/VPS&#xff0c;安装了 fail2ban 去拦截密码穷举攻击。每天的记录都在增长&#xff0c;以前复制屏幕输出就行&#xff0c;一屏的内容还容易粘贴出来的。昨天已经过 500 条&#xff0c;好奇 fail2ban 是如何存储这些内容的&#xff1f;就发现它在使用 SQLite3 数…

SpringCloudGateWay和Sentinel结合做黑白名单来源控制

假设我们的分布式项目&#xff0c;admin是8087&#xff0c;gateway是8088&#xff0c;consumer是8086 我们一般的思路是我们的请求必须经过我们的网关8088然后网关转发到我们的分布式项目&#xff0c;那我要是没有处理我们绕过网关直接访问项目8087和8086不也是可以&#xff1…

C#面试常考随笔12:游戏开发中常用的设计模式【C#面试题(中级篇)补充】

C#面试题&#xff08;中级篇&#xff09;&#xff0c;详细讲解&#xff0c;帮助你深刻理解&#xff0c;拒绝背话术&#xff01;-CSDN博客 简单工厂模式 优点&#xff1a; 根据条件有工厂类直接创建具体的产品 客户端无需知道具体的对象名字&#xff0c;可以通过配置文件创建…

数字人|通过语音和图片来创建高质量的视频

简介 arXiv上的计算机视觉领域论文&#xff1a; AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation AniPortrait&#xff1a;照片级真实感肖像动画的音频驱动合成 核心内容围绕一种新的人像动画合成框架展开。 研究内容 提出 AniPortrait 框架&a…

数据结构实战之线性表(三)

目录 1.顺序表释放 2.顺序表增加空间 3.合并顺序表 4.线性表之链表实现 1.项目结构以及初始代码 2.初始化链表(不带头结点) 3.链表尾部插入数据并显示 4.链表头部插入数据 5.初始化链表&#xff08;带头结点&#xff09; 6.带头结点的链表头部插入数据并显示 7.带头结…

Docker使用指南(一)——镜像相关操作详解(实战案例教学,适合小白跟学)

目录 1.镜像名的组成 2.镜像操作相关命令 镜像常用命令总结&#xff1a; 1. docker images 2. docker rmi 3. docker pull 4. docker push 5. docker save 6. docker load 7. docker tag 8. docker build 9. docker history 10. docker inspect 11. docker prune…

C++基础day1

前言&#xff1a;谢谢阿秀&#xff0c;指路阿秀的学习笔记 一、基础语法 1.构造和析构: 类的构造函数是一种特殊的函数&#xff0c;在创建一个新的对象时调用。类的析构函数也是一种特殊的函数&#xff0c;在删除所创建的对象时调用。 构造顺序&#xff1a;父类->子类 析…

尝试ai生成figma设计

当听到用ai 自动生成figma设计时&#xff0c;不免好奇这个是如何实现的。在查阅了不少资料后&#xff0c;有了一些想法。参考了&#xff1a;在figma上使用脚本自动生成色谱 这篇文章提供的主要思路是&#xff1a;可以通过脚本的方式构建figma设计。如果我们使用ai 生成figma脚本…

iOS 老项目适配 #Preview 预览功能

前言 iOS 开发者 最憋屈的就是UI 布局慢,一直以来没有实时预览功能,虽然swiftUI 早就支持了,但是目前主流还是使用UIKit在布局,iOS 17 苹果推出了 #Preview 可以支持UIKit 实时预览,但是仅仅是 iOS 17,老项目怎么办呢?于是就有了这篇 老项目适配 #Preview 预览 的文章,…

【分布式架构理论2】分布式架构要处理的问题及解决方案

文章目录 1. 应用服务拆分2. 分布式调用3. 分布式协同4. 分布式计算5. 分布式存储6. 分布式资源管理与调度7. 高性能与可用性优化8. 指标与监控 将分布式架构需要解决的问题按照顺序列举为如下几步 问题分类具体内容应用服务拆分分布式是用分散的服务和资源代替集中的服务和资…

【PyQt】pyqt小案例实现简易文本编辑器

pyqt小案例实现简易文本编辑器 分析 实现了一个简单的文本编辑器&#xff0c;使用PyQt5框架构建。以下是代码的主要功能和特点&#xff1a; 主窗口类 (MyWindow): 继承自 QWidget 类。使用 .ui 文件加载用户界面布局。设置窗口标题、状态栏消息等。创建菜单栏及其子菜单项&…

Unity中的虚拟相机(Cinemachine)

Unity Cinemachine详解 什么是Cinemachine Cinemachine是Unity官方推出的智能相机系统&#xff0c;它提供了一套完整的工具来创建复杂的相机运动和行为&#xff0c;而无需编写大量代码。它能够大大简化相机管理&#xff0c;提高游戏开发效率。 Cinemachine的主要组件 1. Vi…