1.前言
第四次作业是前三次大作业的迭代,添加了选择题,多选题,填空题。多选题,填空题可以有多个答案,并且可以对一半并得到分数。这对输入是个考验。同时对比较答案也是个难题。第五次作业是设计一个智能家居强电电路模拟系统,有受控设备和控制设备,不算太难。第六次作业是第五次作业迭代,改变输入,并增加电阻,加大难度。这二次实验运用继承与多态。题量有点大。
第四次作业
1.
这次代码在前三次的迭代中要求更多,因此类也更多,也需要更多的继承。不仅有多个学生,还可以有多个试卷。我的做法是学生类中设试卷类数组,这样可以精确输入想输入的信息,同时也可以输出想输出的信息。
第五次作业
第五次作业中,我设计了十几个类,其中每个受控设备和控制设备都有一个类,同时使用继承,继承父类的方法,每个类都有名字,型号等多个属性,对于输入的处理,我用了先判断是否第一个字符为#来区分,再进行分割得到我想要的信息,同时我在main类中设置了两个父类的动态数组,方便我输入信息,同时我也运用了TreeMap来进行排序再输出,对于控制设备的调控,我对其设计swith,进行状态的调控。
第六次作业
第六次作业是对第五次作业的迭代,这次增加了一次受控设备,并给每个受控设备增加电阻,并还增加了并联。我对其的处理是设置串联类和并联类,将并联分为两个串联进行处理,分别计算出两个串联的电阻再得到并联的电阻,再计算总电阻。再计算总电流,去除总电路的其它受控没备的电压,可以并联电路的电压,再得到每个受控设备电压,从而获得每个受控设备的状态,再进行输出。就该思路,我偏写程序,但对输入的信息处理不当,导致程序失败,因此我还要修改我的码进行尝试,以防下次大作业仍错误。我的输入有问题,同时我觉得主函数也有问题。
踩坑心得
空指针异常:Java中最常见的错误之一。它发生在尝试访问空对象的方法或属性时。要避免这种情况,应该使用null检查或者合适的异常处理机制。
String比较:在Java中,使用比较字符串是否相等,可能会导致意外的结果。应该使用equals()方法来比较字符串内容是否相等。我在第五次和第六次大作业中用了char,并用了.equal方法导致编译错误,并在提示下进行修改为。
数据转换:基本数据类型和其对应的包装类之间的转换可能会导致性能问题或者意外的行为。在大作业中我多次用到数据类型转换。
迭代器修改集合:在使用迭代器遍历集合时,如果在遍历过程中修改了集合,可能会导致ConcurrentModificationException异常。应该使用迭代器的remove()方法来安全地移除元素。
浮点数比较:由于浮点数的精度限制,直接使用==来比较浮点数是否相等可能会出现意外的结果。应该使用误差范围或者专门的比较方法来比较浮点数。
重写对象的方法:例如clone()方法是浅拷贝,如果对象包含引用类型的成员变量,拷贝后的对象和原对象可能会共享相同的引用。如果需要深拷贝,应该实现Cloneable接口并重写clone()方法。
想法:
对设计一个智能家居强电电路模拟系统时,需要考虑到系统的整体架构、类属性等方面。
整体架构:智能家居系统可以采用分布式架构,将各个设备连接到一个中央控制器上,中央控制器负责管理和调度各个设备之间的通信和控制。并以此为最高的父类来继承
属性:系统可以包括名字,类型等属性。每个属性都应该具备方法,以实现系统的灵活性和可扩展性。
总结
在学习Java编程的过程中,大作业是不可或缺的一部分。通过大作业,我们可以将理论知识应用到实践中,加深对Java编程语言的理解,提升编程技能和解决问题的能力。在大作业中,我对Java的基本语法、面向对象编程、异常处理、多线程编程等方面有了更深入的了解,同时也积累了一些编程经验和技巧。
首先,在大作业中我学习了Java的基本语法和语言特性,包括数据类型、变量、运算符、流程控制语句等。通过编写简单的程序,我掌握了如何使用Java来进行基本的数据处理和逻辑控制。
其次,我学习了面向对象编程的思想和方法。在大作业中,我通过定义类、创建对象、封装数据和方法等方式,实现了对现实世界中的问题进行建模和解决。这让我对面向对象编程有了更深入的理解,并且能够更灵活地运用它来解决实际问题。
在异常处理方面,大作业中我学习了如何使用try-catch语句来捕获和处理异常,保证程序的稳定性和健壮性。我了解了Java中的异常类层次结构,以及如何根据具体情况选择合适的异常处理方式。
此外,实验还涉及到了多线程编程。我学习了如何创建和管理线程,以及如何实现线程间的通信和同步。通过实验,我了解了多线程编程的优势和挑战,掌握了一些常用的多线程编程技巧和模式。
在实验过程中,我还学会了如何使用Java开发工具(如Eclipse、IntelliJ IDEA等),以及如何调试和测试Java程序。这些工具和技术的使用让我能够更高效地进行编程和开发工作。
总的来说,通过本次实验,我不仅学到了Java编程语言的基础知识和技能,还培养了解决问题的能力和编程思维。我相信这些经验和技能将对我的未来学习和工作产生积极的影响。我会继续努力学习,不断提升自己的编程能力,为今后的发展打下坚实的基础。
标签:受控,Java,迭代,编程,作业,Blog,第二次,设备 From: https://www.cnblogs.com/heqinyu2023-wdwd/p/18239947