终章
前言
半年时间学习下来,经历了不少挫折,也得到了不少的收获。每次都有一个星期的时间配上四五道pta小点心,外加➕一个实验题,大多数题难度不大,但是有一些题的攻击性极强。前半个学期题目整体比较简单,考的都是以前c语言中学过的一些简单的算法,慢慢的就引入到了类的设计,这方面比较简单了,主要在于设计类,通过完成类与类之间的关系来实现功能,线上课程设计的十分精巧,每次观看线上课程都能完美解决我每阶段越到的问题,再说实验,对于动物类电器类交互的迭代性作业,从类的设计到图形界面的设计,步步提升,是一个强有力的规律性训练。总的来说,学习的很全面。
面向对象技术总结
1.掌握类的声明、创建与使用方法;
2.封装设计能力提升,掌握了信息隐藏技术,学会了接口暴露策略。学会声明构造方法时,使用private关键字修饰,还有final修饰的类,不能被子类继承,不能被子类重写,final关键字修饰的变量,变为常量,只能被赋值1次等。
3.了解了重载术同一类中,允许存在多个同名方法,但它们的参数列表不同。
4.掌握了Object类中的方法,像当equals返回true时,hascode必须相同。
5.掌握了super关键字的使用,如当子类成员与父类同名时,用super.明确调用父类版本。
6.根据需求选择数据结构(如 ArrayList 用于频繁访问),使用 Collections.sort() 进行复杂排序,结合 Comparator 实现灵活排序规则。
7.对于接口,实现多继承能力。
8.ArrayList:基于动态数组随机访问快(O(1)),中间插入/删除慢(O(n))。LinkedList:基于双向链表插入/删除快(O(1)),随机访问慢(O(n))。
9.封装就是将属性私有化,提供共有的方法访问私有属性。
10.setter方法用于赋值,getter方法用于取值。
11.实例变量是类的成员变量。
12.理解封装的本质是将数据与操作封装在类中,通过private修饰符隐藏内部状态,通过ublic方法提供访问接口。
13.掌握基础封装语法,但对封装在设计模式中的应用(如单例模式、策略模式)理解不足,缺乏复杂业务场景下的封装设计经验。
14.理解多态的两种表现形式:方法重载(编译时多态)和方法重写(运行时多态),能通过父类引用指向子类对象。
javafx
采坑心得
1.经过从开学到现在大pta作业中最让我印象深刻的是第一次大作业《电梯调度问题》,当时因为不知道题目中要求的电梯的运行逻辑就先按照自己的片面认知乱写一通导致一直是Wrong Answer,也是知道老师在课堂上为我们具体的讲解了电梯的具体运行逻辑后,我才把问题解决;我从这次的失败中我明白了在编写代码之前一定要认真地做需求分析,只有做好了需求分析才知道我要怎么处理问题而不是连想都不想直接根据自己的主观臆断盲目猜测,这样的最终结果也只会是白忙一场,活生生地给自己增加工作量。
2.注释问题也很重要,需要命名的很多,如果没有注释可能非常乱,也会导致一些逻辑错误。
3.到航空货运作业要做界面时,我才发现JavaFX完全是我的盲区。想做个按钮绑定事件,网上查了十几种写法,抄到代码里不是报空指针就是布局错乱。翻转课堂上同学讲的布局管理器,我听得云里雾里,课后自己试时,GridPane和BorderPane混用得乱七八糟的,后来找系统教程把基础组件一个个敲一遍,再对着作业需求慢慢磨,虽然进度慢,但比从前是好多了。
4.在进行类设计时,有时会出现类之间的关系混乱、职责不清的问题。例如,在电梯调度程序的迭代过程中,从单类设计到多类设计,一开始没有合理规划类之间的关系,导致代码结构混乱,无法正常运行。后来通过参考类图和仔细分析,我对类进行了合理的拆分和调整,保证了类之间的关系合理,提高了代码的可维护性和扩展性。这让我认识到在进行类设计时要遵循面向对象的设计原则,如单一职责原则、开闭原则等,合理规划类之间的关系。
5.在设计程序逻辑时,有时会考虑不周全,导致程序出现漏洞或运行超时的问题。例如,在电梯调度程序中,一开始没有考虑完全所有的情况,只根据输入样例编写逻辑,导致程序在某些情况下出现无限循环的问题。经过与同学交流和仔细思考,我发现通过判断电梯当前楼层与内外队列队头的大小关系能够保证所有的情况都能被考虑到,从而解决了问题。这让我认识到在编写代码前要对问题进行全面的分析和思考,设计出合理的逻辑结构。
改进建议和总结
课程结构优化 建议课程内容可以更加系统化,特别是在讲解抽象类和接口时,可以增加更多实际案例的分析,帮助学生更好地理解它们的应用场景。
加强课下的辅导和答疑,为学生提供更多的学习支持和帮助,及时解决学生在学习过程中遇到的问题。可以安排专门的辅导时间,让教师在课下为学生提供一对一的辅导和答疑服务,也可以建立在线答疑平台,方便学生随时提问和交流。
我觉得,最有必要改进的就是实验系统,最后一次作业我都打完了,运行的时候卡死了,结果我的代码全没了,老老实实又打了半天。
我觉得Java的课程整体不难,自学起来也不难,而且再图形设计上也更得心应手,设计起来也很简单。
pta的题目一般,大多都是重复的知识点训练没有难度。
总的来说java又激起了我对打代码的欲望,通过这门课,我拾起了我的自信心,更有能力和技术面对更多挑战,相信自己未来一定能够大展宏图。
浙公网安备 33010602011771号