import scala.io.StdIn\n// 手机号类\nclass Cq10086(private var cellPhoneNumber: String, private var cellPhoneNumberFriend: String) {\n def getLocalAreaCode(): String = cellPhoneNumber.substring(0, 3)\n}\n// 抽象类\nabstract class CqAbstractBase {\n def multimediaMessageMoney(cq: Cq10086): Unit\n def supplementMoney(cq: Cq10086): Unit\n def messageMoney(): Unit\n}\n// 实现类\nclass CqImpl extends CqAbstractBase {\n override def multimediaMessageMoney(cq: Cq10086): Unit = {\n val localAreaCode = cq.getLocalAreaCode()\n if (localAreaCode == "023") {\n println("发送本地彩信,费用为0.5元")\n } else {\n println("发送外地彩信,费用为1元")\n }\n }\n\n override def supplementMoney(cq: Cq10086): Unit = {\n val localAreaCode = cq.getLocalAreaCode()\n println("请输入充值金额:")\n val amount = StdIn.readDouble()\n if (localAreaCode == "023" && amount >= 20) {\n println("本地话费充值成功")\n } else if (localAreaCode != "023" && amount >= 50) {\n println("外地话费充值成功")\n } else {\n println("充值失败,金额不足")\n }\n }\n\n override def messageMoney(): Unit = {\n println("发送短信,每条0.1元")\n }\n}\n// 测试类\nobject CqMain {\n def main(args: Array[String]): Unit = {\n println("请输入您的手机号码:")\n var phoneNumber = StdIn.readLine()\n while (!phoneNumber.matches("\d{11}")) {\n println("手机号码格式错误,请重新输入:")\n phoneNumber = StdIn.readLine()\n }\n\n println("请输入朋友的手机号码:")\n var friendPhoneNumber = StdIn.readLine()\n while (!friendPhoneNumber.matches("\d{11}")) {\n println("手机号码格式错误,请重新输入:")\n friendPhoneNumber = StdIn.readLine()\n }\n\n val cq = new Cq10086(phoneNumber, friendPhoneNumber)\n val cqImpl = new CqImpl()\n\n println("请选择业务类型:")\n println("1. 话费充值")\n println("2. 发送短信")\n println("3. 发送彩信")\n\n val choice = StdIn.readInt()\n\n choice match {\n case 1 => cqImpl.supplementMoney(cq)\n case 2 => cqImpl.messageMoney()\n case 3 => cqImpl.multimediaMessageMoney(cq)\n case _ => println("输入有误")\n }\n }\n}


原文地址: https://www.cveoy.top/t/topic/pxG1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录