news 2026/4/23 12:53:56

期末复习:结构算法题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
期末复习:结构算法题

文章目录

    • 题目要求
    • 项目结构
    • 1、Action
    • 2、Colorable
        • Step1:写接口和父类
        • Step2:写实现类
        • Step3:写测试类

题目要求

项目结构

1、Action

代码展示

packageProgramDesign.Action;/** * 定义Action接口,包含常量、抽象方法、静态方法、默认方法 */publicinterfaceAction{// 常量reactionStringreaction="run";// 抽象方法actvoidact();// 静态方法infostaticvoidinfo(){System.out.println("这是静态方法");}// 默认方法shoutdefaultvoidshout(){System.out.println(reaction);}}

先写成“成员内部类”的格式(帮助理解)

packageProgramDesign.Action;/** * 1、先写成成员内部类实现Action接口 */publicclassTestAction{publicstaticvoidmain(String[]args){// 通过成员内部类实现 Action 接口classActionImplimplementsAction{@Overridepublicvoidact(){System.out.println("执行 act 动作");}}// 创建内部类对象ActionImplaction=newActionImpl();// 调用实现后的 act()action.act();// 调用接口的静态方法 info()Action.info();// 调用默认方法 shout()action.shout();}}

再写成“匿名内部类”的格式

packageProgramDesign.Action;/** * 测试动作接口 * 1.匿名内部类 */publicclassTestAction{publicstaticvoidmain(String[]args){// 匿名内部类实现接口 ActionActionaction=newAction(){@Overridepublicvoidact(){System.out.println("匿名内部类实现了 act 方法");}};// 调用实现后的 act 方法action.act();// 调用接口的静态方法 info()Action.info();// 调用默认方法 shout()action.shout();}}

最终运行结果

2、Colorable

Step1:写接口和父类

代码展示

packageProgramDesign.Colorable;/** * 定义Colorable接口,包含setColor方法 */publicinterfaceColorable{voidsetColor(Stringcolor);}
packageProgramDesign.Colorable;/** * 抽象类Toy,包含play方法 */publicabstractclassToy{// 玩具颜色protectedStringcolor;// 抽象方法play(由子类实现)publicabstractvoidplay();}
Step2:写实现类

代码展示

packageProgramDesign.Colorable;// 玩具娃娃类,继承Toy并实现Colorable接口publicclassDollextendsToyimplementsColorable{// 实现设置颜色的方法@OverridepublicvoidsetColor(Stringcolor){this.color=color;// 给父类的color属性赋值}// 实现玩的方法,输出指定内容@Overridepublicvoidplay(){System.out.println("正在玩"+color+"的玩具娃娃");}}
packageProgramDesign.Colorable;/** * 抽象类Toy,包含play方法 */publicabstractclassToy{// 玩具颜色protectedStringcolor;// 抽象方法play(由子类实现)publicabstractvoidplay();}
Step3:写测试类

代码展示

packageProgramDesign.Colorable;/** * 测试类:实例化Call和Doll,调用方法 */publicclassTestToy{publicstaticvoidmain(String[]args){// 实例化玩具车并设置颜色Callcar=newCall();car.setColor("红色");car.play();// 实例化玩具娃娃并设置颜色Dolldoll=newDoll();doll.setColor("蓝色");doll.play();}}

最终运行结果

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 16:26:37

Kotaemon问答系统延迟优化:P99响应时间压降至500ms

Kotaemon问答系统延迟优化:P99响应时间压降至500ms 在企业级智能服务日益普及的今天,用户对AI系统的期待早已超越“能答上来”,转而聚焦于“是否够快、够准、够稳”。尤其是在客服、知识库查询等高频交互场景中,哪怕一次超过1秒的…

作者头像 李华
网站建设 2026/4/18 0:51:09

3步彻底解决Sublime Text编码困扰:ConvertToUTF8插件实战指南

3步彻底解决Sublime Text编码困扰:ConvertToUTF8插件实战指南 【免费下载链接】ConvertToUTF8 A Sublime Text 2 & 3 plugin for editing and saving files encoded in GBK, BIG5, EUC-KR, EUC-JP, Shift_JIS, etc. 项目地址: https://gitcode.com/gh_mirrors…

作者头像 李华
网站建设 2026/4/23 11:59:44

快速上手:StaMPS InSAR数据处理全流程解析

StaMPS(Stanford Method for Persistent Scatterers)是一款专业的合成孔径雷达干涉测量软件,专门用于从SAR时间序列中提取高精度的地面位移信息。这款工具结合了持久散射体和小基线集技术,能够有效监测地表毫米级的微小变化。 【免…

作者头像 李华
网站建设 2026/4/23 11:59:45

替代LM74610_120V理想二极管控制器

产品描述:(替代LM74610)PC2781 是高边驱动控制器配合 N 沟道功率MOSFET 控制器, 在应用时与外部 N 沟道功率MOSFET、电容储存器共同使用,实现二极管电路功能,该二极管电路在串联电流源时具有低平均正向导通…

作者头像 李华
网站建设 2026/4/23 11:59:52

开源白板工具OpenBoard:从零开始到团队协作的完整指南

在数字化协作日益重要的今天,开源白板工具OpenBoard为团队提供了强大的可视化沟通平台。无论您是需要进行远程会议、在线教学还是创意头脑风暴,这款跨平台工具都能满足您的需求。本文将带您从零开始,全面掌握OpenBoard的安装配置、核心功能使…

作者头像 李华
网站建设 2026/4/23 12:00:35

FLUX.1-DEV-BNB-NF4终极指南:4bit量化让你的AI绘图更高效

FLUX.1-DEV-BNB-NF4终极指南:4bit量化让你的AI绘图更高效 【免费下载链接】flux1-dev-bnb-nf4 项目地址: https://ai.gitcode.com/hf_mirrors/lllyasviel/flux1-dev-bnb-nf4 还在为AI绘图模型占用太多显存而困扰吗?FLUX.1-DEV-BNB-NF4带来了革命…

作者头像 李华