补给站总结
OO补给站总结
(1)对于当时没通过的每次作业,描述当时遇到的困难和无法完成的原因;
当时已经完成了大部分作业,以为一两次没完成不会影响是否及格,所以放松了,加上当时需要完成毕业设计,所以没继续完成作业。
(2)现在补的每次作业,有哪些针对性的改进,包括设计、算法和难点的处理等;
1、减少了一些不必要的属性,让代码更加简洁。如regions
2、修正了接口没有属性的问题
3、让查询类、接口、状态机、状态的方法变得更加简单。把抛出异常的部分放到方法里面,大大简化代码。
4、取消了之前先返回umlclass再得到name、id的做法,使用方法获得name、id,这样更加简洁,也更符合OO的规则。
5、考虑了父类属性是否要继承的问题。目前设计是只继承了public的属性。
下面记录一下比较有难度的R001-R004的需要注意的地方。
R001
方案:把一个类的所有属性和关联的类的name放在一块(可重复)然后查重。
1、如果出现自关联,不算在重复里面
2、名字出现null的话删掉
R002
分别检查类和接口
对类:
当father不等于null就加入set,循环
检查是否当前的节点name等于起点类的name
避免出现死循环,有记录地检查父类
对于接口
记录起点,对于一个interface,如果父接口数量为0,就返回,如果形成环就加入set返回
注意这里list无法addAll一个空的list。
R003
由于R002,这里只要考虑接口。对于一个接口
1、没有父接口就返回false(false指不报异常)
2、把父接口都加入set,加入时候检查是否已经contains,如果有返回true
3、对于父接口的每一个递推,如果有返回true就返回true
4、如果前面都没有返回,返回false
R004
统计所有实现的类,查重
因为统计时候不需要管是否重复,出乎意料地简单。一开始饶了好多弯路。
(3)通过补给站的讲解,有哪些新的收获和进步。
对于进一步提高性能有了一些想法。引发了我关于容器和算法的思考。
(4)对补给站组织形式有哪些建议。
没有什么特别的建议。觉得挺好的。如果有作业前的集中答疑就更好了。
(5)心得体会。
没什么其他问题的话,我的OO应该是结束了。从大二下学期开始,这是我第四次选课,OO是我大学毕业路上最难的一道坎。虽然和同学相比这样的经历令人难堪,但是我知道这就是我的经历,我接受它。
面向对象的思想以及java的简洁优美说实话很吸引我。之前两个学期完全是没能入门。这是我自编译原理后第二个在编程上收获良多的课程,非常感谢课程组。
再谈一些鸡汤也没啥意义,希望毕设也能像OO这样,花下功夫,水到渠成。