Kotlin面向对象之开发一个洗衣机 - 封装

news/2024/11/16 18:35:24/

 

 

一、简陋版洗衣机

Test.kt

/*** 程序员B写的代码* 洗衣服*/
fun main(args:Array<String>){var washMachine = WashMachine("小天鹅",size = 12)washMachine.openDoor()
//    washMachine.closeDoor()washMachine.start()
}
WashMachine.kt
/*** 程序员A创建的洗衣机*/
class WashMachine(var module:String,var size:Int){var isDoorOpen = truefun openDoor(){println("洗衣机的门已经打开了...")isDoorOpen = true}fun closeDoor(){println("洗衣机的门已经关闭了...")isDoorOpen = false}fun start(){if (isDoorOpen){println("哔哔...门还没关呢,不能运行")}else {println("放水...")println("水放满了...")println("电机开始转...")println("洗好了...")}}
}

二、升级版洗衣机

Test.kt

/*** 程序员B写的代码* 洗衣服*/
fun main(args:Array<String>){var washMachine = WashMachine("小天鹅",size = 12)washMachine.openDoor()println("小华华把内裤放进去了")washMachine.closeDoor()washMachine.selectMode(1)washMachine.start()
}

WashMachine.kt

/*** 程序员A创建的洗衣机*/
class WashMachine(var module:String,var size:Int){var isDoorOpen = truevar currentMode = 0fun openDoor(){println("洗衣机的门已经打开了...")isDoorOpen = true}fun closeDoor(){println("洗衣机的门已经关闭了...")isDoorOpen = false}fun selectMode(mode:Int){currentMode = modewhen(mode){0 -> println("初始模式,请您选择模式")1 -> println("轻柔")2 -> println("狂揉")else -> println("不要乱拧,拧坏了不保修呀")}}fun start(){if (isDoorOpen){println("哔哔...门还没关呢,不能运行")}else {when(currentMode){0 -> println("选择模式错误,不能开始洗衣服")1 ->{println("放水...")println("轻柔开始,发动机转速 慢")println("洗完啦")}2 -> {println("放水...")println("狂揉开始,发动机转速 快")println("洗完啦")}else ->{println("模式不能被识别")}}}}
}

封装转速模块 private语句类内私有化方法

Test.kt

*** 程序员B写的代码* 洗衣服*/
fun main(args:Array<String>){var washMachine = WashMachine("小天鹅",size = 12)washMachine.openDoor()println("小华华把内裤放进去了")washMachine.closeDoor()washMachine.selectMode(1)washMachine.start()//    washMachine.setMotorSpeed(10000)
}

WashMachine.kt

/*** 程序员A创建的洗衣机*/
class WashMachine(var module:String,var size:Int){var isDoorOpen = truevar currentMode = 0fun openDoor(){println("洗衣机的门已经打开了...")isDoorOpen = true}fun closeDoor(){println("洗衣机的门已经关闭了...")isDoorOpen = false}fun selectMode(mode:Int){currentMode = modewhen(mode){0 -> println("初始模式,请您选择模式")1 -> println("轻柔")2 -> println("狂揉")else -> println("不要乱拧,拧坏了不保修呀")}}fun start(){if (isDoorOpen){println("哔哔...门还没关呢,不能运行")}else {when(currentMode){0 -> println("选择模式错误,不能开始洗衣服")1 ->{println("放水...")println("轻柔开始,发动机转速 慢")setMotorSpeed(100)println("洗完啦")}2 -> {println("放水...")println("狂揉开始,发动机转速 快")setMotorSpeed(1000)println("洗完啦")}else ->{println("模式不能被识别")}}}}private fun setMotorSpeed(speed:Int){println("当前发动机转速为${speed}圈/秒")}
}

 


http://www.ppmy.cn/news/886312.html

相关文章

python学习笔记(3)

接python学习笔记(2) python学习笔记3 一、面向对象基础1、理解面向对象2、类和对象3、添加和获取对象属性4、魔法方法5、综合应用 二、面向对象-继承1、继承的概念2、单继承3、多继承4、子类重写父类的同名属性和方法5、子类调用父类的同名属性和方法6、多层继承7、super()8、…

如何开发一个软件

一、软件开发流程 1. 需求分析 主要有两个文档&#xff0c;一个需求规格说明书和一个产品原型图 2. 设计 UI设计、数据库设计、接口设计 3. 编码 项目代码编写、单元测试 4. 测试 测试用例、测试报告 5. 上线运维 软件环境安装、配置 二、角色分工 项目经理 对整个…

个人Scratch程序合集 第二版 主页

个人Scratch程序合集 第二版 主页 本程序为本人的转换为HTML的Scratch程序制作的第二个主页。改用了响应式图片廊文字说明的形式&#xff0c;对不同尺寸的页面适配较好&#xff0c;但在一些分辨率上右侧空白区域过大。由于通常只有文字说明行数相同的图片才能并排&#xff0c;本…

计算机一级之WORD

1.设置阴影效果&#xff0c;发光效果&#xff0c;在开始界面 2.主题色和个性色表达一样 3.渐变也在开始界面 4.页面纸张大小在布局设置&#xff0c;页边距设置&#xff0c;在对话框具体设置页边距 5.设置页码格式&#xff0c;页码格式主要考核编号格式 6.页面填充颜色&…

wps带阴影的边框怎么设置_wps如何添加阴影边框-wps设置阴影边框的方法 - 河东软件园...

WPS是一款非常专业的办公软件&#xff0c;它包括PPT、word、Excel等组件。在使用Wps软件时&#xff0c;为了让文本看起来更加好看一些&#xff0c;我们经常要在其中插入图片并添加一些效果。比如为了表现图片的立体感时&#xff0c;可以添加阴影效果&#xff1b;如果为了保持图…

【宝藏系列】如何取消LaTeX插入图片时边框出现虚线阴影?

&#x1f496;作者简介&#xff1a;大家好&#xff0c;我是车神哥&#xff0c;府学路18号的车神&#x1f947; ⚡About—>车神&#xff1a;从寝室到实验室最快3分钟&#xff0c;最慢3分半&#xff08;半分钟献给红绿灯&#xff09; &#x1f4dd;个人主页&#xff1a;车手只…

文档图片阴影去除

文章目录 一、前言二、通过 Gamma 校正来去除阴影 (旧方法)2.1 原理2.2 C 代码2.3 运行结果对比图 三、通过自适应阈值化来去除阴影 (新方法)3.1 原理3.2 代码3.3 运行结果对比图 四、新旧方法对比图五、BEDSR-Net 去除阴影 (模型) 一、前言 在 OCR 的预处理中需要对文档图片中…

div 边框阴影

div边框加阴影效果,求高手帮忙~ 浏览次数&#xff1a;60次悬赏分&#xff1a;0 | 解决时间&#xff1a;2011-8-10 15:39 | 提问者&#xff1a;zmjailwy 在css样式里建了.mydiv{ width:500px;height:auto;border:#909090 1px solid;background:#fff;color:#333; filter:progi…