补给站总结 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这样,花下功夫,水到渠成。