Java第二阶段学习总结

前言
此阶段总共进行三次大作业,第一次作业围绕正则表达式展开。第二次作业较为综合,而难点仍是正则表达式。第三次作业加强了我们对面向对象与单一职责的理解
1.作业过程总结
第一次作对我来说是难度最大的一次作业。后两到题没有涉及到正则表达式,做起来相对轻松。但是第三道题—图形继承,我为了省下思考的时间,并没有遵循单一职责,便导致后面的作业进行了“回锅重做”。第一题--水文校验,光是学习理解正则表达式就费了很大功夫,由于学术不精,到最后也没写出这道题来,主要难点就是,无法把自己想限定的条件转化成正则表达式。

 

第二次作业,引入继承与多态的概念。这次作业的难度,比起正则表达式,我更想说,对于多项式求导这道题我无法独立的把所有情况考虑进去,光是测试点都令我感叹原来有这么多需要考虑的

 

 

 

 

 

所以,其实比起机器语言的知识,难的是广阔而又缜密的思维。

 

第三次作业

整体来说比较简单,唯一需要学习注意的地方是接口。接口,官方解释为接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。我对此的理解为接口可以看作为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者我们可以直接把接口理解为100%的抽象类,既接口中的方法必须全部是抽象方法。

在这一次作业中,我才有种上道了的感觉,真正运用了单一职责这一原则,通过不同的类,在主函数中运作。同时,这次作业我才真正解决了第一次作业中的问题:用Arraylist存储对象。
通过每次作业中产生的问题,我理解了三大技术特性

这次作业比起实际的问题,更多的是一些“想不通为何这样做”的问题。

*首先是继承与多态的关系

继承:程序向上总结
将子类共同的行为和属性集中写到父类中,通过继承,所有子类都能自动获得这些属性和行为,大大减少了重复代码继承成为多态实现的基础。
多态:程序向下扩展
父类某些行为,子类进行继承重写,从而实现:同种行为,不同的实现。
*其次,既然有了继承,为何还要提出接口这一概念。

经查阅资料,体会到他们各自存在的意义

一个可以实例化对象的类是不会去继承接口的,举例说明,Dog类可以继承Animal,它不会继承Land类(接口先理解为类)。因为就不是同类的东西,为什么要继承呢。所以,一个可以实例化的类只会实现(implements)接口,不会继承接口。而接口是可以继承接口的。

他们也有实际上的区别

1)不同的修饰符修饰(interface),(extends)
2)在面向对象编程中可以有多继承,但是只支持接口的多继承,不支持’继承’的多继承哦
而继承在java中具有单根性,子类只能继承一个父类
3)在接口中只能定义全局常量,和抽象方法
而在继承中可以定义属性方法,变量,常量等…
4)某个接口被类实现时,在类中一定要实现接口中的抽象方法
而继承想调用那个方法就调用那个方法,毫无压力
你可以有多个干爹(接口),但只能有一个亲爹( 继承)

本次作业花费时间没有具体数字(因为基本最后都没做出来),除了正则表达式让人前进不了外,其他都是正常速度(2—3小时)

编程过程中,所要的整体结构应该从一开始就想好,防止后面不知道自己在做什么。

2.OO设计心得
本阶段学习主要对封装继承多态有深的认识,体会到这些概念存在的意义

从封装开始,他的原则是把尽可能多的东西藏起来,对外提供简洁的接口;
把所有的属性封装起来。

继承则是提高了代码的可复用性。

多态相对复杂一点,他存在必须满足三个条件,要有继承(两个类之间存在继承关系,子类继承父类);要有重写(在子类里面重写从父类继承下来的方法);父类引用指向子类对象

单一职责,应该有且仅有一个原因引起类的变更。该原则提出了对对象职责的一种理想期望。对象不应该承担太多职责,正如人不应该一心分为二用。唯有专注,才能保证对象的高内聚;唯有单一,才能保证对象的细粒度。对象的高内聚与细粒度有利于对象的重用。

开闭原则,明确的告诉我们:软件实现应该对扩展开放,对修改关闭,其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化的。这样可以提高维护性

 

3.  测试的理解与实践

PTA的测试点真的让我很头疼,几次作业都是exlipse可以通过但是PTA却一直是0分,这样抓狂的情况,无论测试数据给的多少多好或是多巧,都不得不求助过了的同学。

类似于 输出空行时括号里绝对不能有引号。

4. 课程收获
本阶段学习,我接触到java世界里更多的概念,渐渐养成了面向对象的编程思维。我也发现了我写题不能一气呵成的原因:对基础知识了解过少,对一些概念的存在都不知道,更别提运用
5. 老师课程建议

(1)对于一些难的题目,可以请满分,游刃有余的同学分享自己写题的建议
(2)难易结合,课上的题目可以难一些,老师讲解。课下的题目可以简单一些,我们联系。这样可以减轻一些我们的压力 

6.下一阶段的学习计划

(1)通过菜鸟驿站学习基础知识

(2)多浏览CSDN

(3) 这几次作业我都是按照指导书中的类图进行编程,对类图的构造也是对逻辑思维的锻炼,之后需要自己来思考并画出类图。

posted @ 2020-05-02 21:30  最近爱吃螺蛳粉  阅读(149)  评论(0)    收藏  举报