版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
类与对象应用单元四类和对象概述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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产主管每日工作培训
- 化工安全生产
- 江西省宜春市丰城市2023-2024学年三年级上学期第三次月考数学试卷
- 08 中华文化之传统工艺-2025年中考英语新热点时文阅读
- 1.3地球的历史(导学案)高一地理同步高效课堂(人教版2019必修一)
- 期中摸底测试(1-4单元)(试题)(含答案)2024-2025学年六年级上册数学人教版
- 硕论开题全解析-从答辩准备到学术规范
- 影响健康因素多 课件 2024-2025学年人教版(2024)初中体育与健康七年级全一册
- 全省小学美术教师赛课一等奖人美版美术三年级下册《恐龙的世界》课件
- 高中语文15永不消逝的歌声课件苏教版必修
- 心理学专业就业前景分析
- 婴幼儿保育技能大赛考试题库(浓缩500题)
- 学校物业服务保洁服务管理方案
- 企业风险管理中的政治和地缘风险管理
- 万曼呼吸机操作
- 新生儿营养素主要成分和特点
- (多种情景)设备居间合同范本(实用)
- 扩大高水平对外开放课件
- 公司员工的年度考核表领导评语
- 排水公司招聘笔试题目
- JBT 7750-2023 滚动轴承 推力调心滚子轴承 技术规范 (正式版)
评论
0/150
提交评论