(1) 前言:第七次大作业与第八次大作业知识点要是继承与多态并且对类方法的运用,题量比较大,难度也是不断上升。第七次大作业在第六次大作业基础上增加了受控窗帘这一受控设备与互斥开关这一控制开关,并考虑了一条总电路上有多个并联电路,输入信息也变得与第六次大作业不一样,但输出信息大致不变,也就多了一个受控窗帘与一个互斥开关。第八次大作业在第七次大作业基础上增加了二极管,并考虑了一个并联电路中含有并联电路,并增加最大限定电流,输入信息大致与第七次大作业一样,但输出信息与第七次大作业有很大区别,不仅要输出设备的状态,还要输出两引脚的电压,也要判断电流是否超过最大限定电流,难度相较于第七次大作业有较大的提升。
(2)
对于第七次大作业,我增加了受控窗帘类继承受控设备,互斥开关继承了控制设备,并对并联电路建立动态数组。在输入方面,我对创建三个方法,分别处理并联电路,串联电路,设备控制这三个方面。输出方面也就增加受控窗帘,互斥开关的输出。对于互斥开关,互斥开关显示1,2的接通状态,接通时显示closed,断开时显示turned on。并且断开时是1,3接通。而且1,2接通时的电阻与1,3接通时的电阻不同。我在互斥开关类中设定1,2相通时为0,1,3相通时为1。同时互反开关类中也有方法判断互斥开关的状态是否为0,从而是否改变电阻的值。对于受控窗帘类,并没有特别,与其它受控没备差不多,也就work()方法改变。至于输入信息处理,我用了第六次大作业的处理,我觉得不太行。因当用正则表达式的匹配,因为题目没有输入错误,所以用正则表达式来匹配最为合适。对于串联电路的处理,我识别引脚是否为1时再考虑是否创建对象,而对于并联电路的处理,从输入信息判断创建几个串联电路对象,从而方便计算电阻和分配电压。
(3) 对于第八次作业,我增加了二极管类,对于二极管,其电路特性为:正向导通,反向截止;当电流从左至右流过时,二极管导通”conduction”,电阻为0;电流从右至左流动时,二极管截止”cutoff”,电阻无穷大,相当于开关打开。二极管如果两端电压相等,没有电流流过,分以下两种情况输出:1、如果两端电压为0,二极管的导通/截止状态由接入方向决定,1号引脚靠近电源则状态为导通,反之为截止。2、如果两端电压不为0,二极管导通。因为电器在工作时,过大的电流会引起电器过热,从而烧坏电路。所以每个元器件都有最大电流的设置,当实时电流超过最大电流时,在该电器输出信息的最后加入提示“exceeding current limit error”。并且每个电器的最大限定电流不同,开关20、分档调速器18、连续调速器18、白炽灯9、日光灯5、吊扇12、落地扇14、互斥开关20、受控窗帘12、二极管8。还有如果电路出现无穷大的电流造成短路,所有元器件信息不输出,仅输出提示“short circuit error”。
(4)踩坑心得
我曾用动态数组类中含动态数组,以达到二元数组,但失败了。后来我发现好像是我只创立了一个类对象,于是将类对象的创建放入循环中实现.
(5)总结
首先,这次题目集的设计非常贴近实际应用,涵盖了Java编程的各个难度和方面。通过解答其中的题目,我不仅复习了Java语言的基础知识,而且深入了解了面向对象编程、多线程编程等主题。学习基础Java将让我获得一种强大的编程工具。Java是一种结构化、面向对象的编程语言,它的语法简洁明了,易于学习和理解。通过学习Java,我掌握编程的基本概念,如数据类型、变量、循环、条件语句等,为后续学习其他编程语言打下坚实的基础。我对Java编程有了更全面、更深入的认识,为我未来在软件开发领域的发展奠定了坚实的基础。其次,通过解答题目,我也提升了自己的问题解决能力和编程技巧。在解决每一个问题的过程中,我需要分析问题、设计解决方案,并编写代码实现。这锻炼了我的逻辑思维能力和动手能力,让我变得更加从容和自信。最后,完成这次题目集也让我感受到了学习的乐趣和成就感。每当解答一个难题、克服一个困难,我都会有一种满足感和成就感。除此之外,学习基础Java还将让我掌握面向对象编程的思想和方法。面向对象编程是一种强大的编程范式,它能够使代码更加模块化、可维护性更高、复用性更强。通过学习Java,我深入理解类、对象、继承、多态等概念,为你设计和开发复杂的软件系统提供强大的支持。这种成就感不仅来自于解决问题的过程,更来自于不断提升自己、不断突破自己的过程。这让我更加热爱编程,更加热爱学习,也更加期待未来在编程领域的发展和成长。