版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
类与对象应用单元四类和对象概述Java类构造方法目录CONTENTS123对象初始化过程重载45继承多态
78抽象和封装
6抽象类接口
1011包和访问控制
9目录CONTENTS4.6抽象和封装面向对象设计首先要做的就是抽象。根据用户的业务需求抽象出类,并关注这些类的属性和方法,将现实世界中的对象抽象成程序设计中的类。接下来分析一下“租车系统”的部分需求。(1)在控制台输出“请选择要租车的类型:(1代表轿车,2代表卡车)”,等待用户输入。(2)如果用户选择的是轿车,则在控制台输出“请选择轿车品牌:(1代表红旗,2代表长城)”,等待用户输入。(3)如果用户选择的是卡车,则在控制台输出“请选择卡车吨位:(1代表5吨,2代表10吨)”,等待用户输入。(4)在控制台输出“请给所租的车起名:”,等待用户输入车名。(5)所租的车油量默认值为20升,车辆损耗度为0(表示刚保养完的车,无损耗)。(6)具有显示所租车辆信息功能,显示的信息包括:车名、品牌/吨位、油量和车损度。4.6.1类抽象首先要进行类抽象,就是发现类并定义类的属性和方法。(1)发现名词;(2)确定类和属性;(3)确定方法。轿车类图卡车类图4.6.2类封装类抽象的目的在于抽象出类,并确定属性和方法,而接下来的类封装,则要在封装的角度隐藏类的属性,提供公有的方法来访问这些属性。最简单的操作方法就是,把所有的属性都设置为私有属性(表示私有属性和方法时,需在类图中的属性和方法前加上“-”号),每个私有属性都提供getter和setter公有的方法(表示公有属性和方法时,需在类图中的属性和方法前加上“+”号),最终可得到封装后的类图:
轿车类图卡车类图4.6.2类封装这样的封装过于简单,没有考虑需求,接下来进一步阅读需求,可以发现以下几点。
(1)租车时可以指定车的类型和品牌(或吨位),之后不允许修改。(2)油量和车损度租车时取默认值,只有通过车的加油和行驶的行为改变其油量和车损度值,不允许直接修改。根据需求,应对轿车类和卡车类做如下修改:(1)去掉所有的setter方法,保留所有的getter方法。(2)提供addOil()、drive()这两个公有的方法,实现车的加油和行驶的行为。(3)至少需要提供一个构造方法,实现对类型和品牌(或吨位)的初始化。4.6.3方法的实现在Car类和Truck类的代码中,addOil()方法和drive()方法的功能还没有实现,接下来结合需求,分别完成Car类和Truck类中的这两个方法。《租车系统》增加了如下需求:(1)不论是轿车还是卡车,油箱最多可以装60升汽油,每次给车加油,增加油量20升。如果加油20升超过油箱容量时,则加到60升即可,并在控制台输出“油箱己加满!”。(2)汽车行驶1次,耗油5升,车损度增加10,如果油量低于10升,则不允许行驶,直接在控制台输出“油量不足10升,需要加油!”。importjava.util.Scanner;importorg.unitthree.*;classTestZuChe2{publicstaticvoidmain(String[]args){Carcar=newCar("战神","长城");//初始化轿车对象carcar.show(); //输出车辆信息car.drive(); //让car行驶1次,油量剩下15升,车损度为10car.show(); //输出车辆信息car.drive(); //让car再行驶1次,油量剩下10升,车损度为20car.drive(); //让car再行驶1次,油量剩下5升,车损度为30car.drive(); //让car再行驶1次,因油量不足10升,不行驶,提示需要加油car.addOil(); //让car加油1次,油量增加20升,达到25升car.show(); //输出车辆信息}}//加油publicvoidaddOil(){if(oil>40) //如果加油20升则超过油箱容量,则加到60升即可{oil=60;System.out.println("邮箱已加满!");}else{ //加油20升oil=oil+20;}System.out.println("加油完成!");}//行驶publicvoiddrive(){if(oil<10){System.out.println("油量不足10升,需要加油!");}else{Syst
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省杭州市四校2025-2026学年初三下学期一练前第二次强化训练英语试题含解析
- 山东东营市2026年初三英语试题模拟考试(江门一模)英语试题试卷与评分参考含解析
- 山西省(晋城地区)2026年初三下学期1月第一次联合考试英语试题含解析
- 西双版纳市重点中学2025-2026学年初三物理试题下学期第二次模拟考试试题含解析
- 2025 高中文言文阅读理解之特殊称谓辨析课件
- 2026年自动化仓储市场中的竞争对手分析
- 2026年自动化仓储服务中的人性化设计
- 2026年全民环保的宣传与实践路径
- 骨折患者的康复训练方案
- 2026广西柳州融水苗族自治县人民法院招聘书记员2人备考题库及参考答案详解【典型题】
- 2026年护士资格考试统考历年真题及答案
- 2026江苏南京市雨花台区征收拆迁安置办公室招聘编外人员3人笔试参考题库及答案解析
- 内部财务交叉检查制度
- OpenClaw:AI从聊天到行动 下一代智能助手白皮书
- 电梯维保2026年复工培训
- 中国整形美容外科诊疗指南(2025版)
- GB/T 19362.2-2017龙门铣床检验条件精度检验第2部分:龙门移动式铣床
- FZ/T 07008-2020定形机热平衡测试与计算方法
- 精细化工过程与设备 第四章 塔式反应器
- 第6章-六足仿生机器人项目设计课件
- 安全文明施工措施费专款专用的方案
评论
0/150
提交评论