Java学习总结3.0
前言:
对于Java的学习已经到了最后阶段,在此我对Java的学习做一个彻底的总结。
作业过程总结:
1.pta作业的知识迭代关系

2. 逐步理解面向对象的封装性,继承性与多态性三大技术特性
在以前的作业中主要是通过get和set方法对那个对象的属性进行操作,因为每一次作业每个对象的属性都是私有的,这样的封闭性需要继承来简化属性,方法的重复。比如其中的一个题目就是求各个图形的面积,先通过shape类总结了相同的地方,再通过子类去重写需要的方法,这就是继承。多态体现在继承之间的层次性的结构,同样的信息输入得到不同的反馈。
3.作业中遇到的问题及解决办法
pta作业练习的难有一点还是正则表达式的书写,第一次的水文校验作业,第二次的图形题目不仅有对正则表达式的考察还有ArrayList用法,还有最后一次的对表达式的捕获。 第一次的水文校验作业主要就是在输入检验方面的正则表达式比较复杂,按照正常的表达式书写一旦出现错误真的是很难检查的。还有之后的作业需要用到ArrayList泛型的用法,写的时候还没讲这些内容,需要自己去先学习。
4.对编程的严谨性的认识及教训
编程的严谨性就体现在能不能通过编译,能不能通过测试点。通过jdk的帮助编译错误还是很好解决的,但是测试点能不能通过不仅要靠清晰的算法更重要的是你对数据各个方面的考虑。严谨缜密的编程能省下大量的时间,尤其是代码的数量多起来的时候,如果仅仅是因为一点小小的错误而耽误时间,这消耗的还有你对这门学科的热情。在写代码的时候一定要心态平和,如果发现自己深陷其中又实在写不出来,不建议死磕,Java的类有十分清晰的属性与方法保持条理清楚很重要。
OO设计心得
1.对面向对象三大技术特性之间关系的理解
封装性:封装是一种信息隐蔽,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。
继承性:继承性是子类自动共亨父类之间数据和方法的机制。它由类的派生功能体现
个类直接继承其它类的全部描述,同时可修改和扩充。
多态性:对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,
综上所述:封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象,由于封装的特性需要继承性机制,避免类对象中数据、方法会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。
2.面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)
单一职责:定义一个类,只有一个原因能引起它的变化,该原因就是职责;
开闭原则:对拓展开放,对修改封闭;
里氏替换原则:任何基类可以出现的地方,其子类也一定可以出现;
迪米特原则:一个实体类尽量少和其他实体产生依赖,模块功能尽量保持独立;
合成聚合复用:通过组合聚合,引用类的的方法,可以降低耦合性的风险,同时实现复用。
3.OO编程思维的理解
对于问题,首先要有一个宏观的把控,就是要建立起清晰的类图结构。然后在确立的基本原则之下,合理的设计方法,保证职责的单一性。最后是算法的构建,确保程序的完整运行。从类到方法的逐步设计,这就是OO编程思维。
4.类设计心得
在这方面我还没有太多的理解,在写作业的时候基本都是照抄实验指导书的类图。对于我来说,类的设计应该要符合单一职责避免类与类之间相互影响太多,便于修改和理解
测试的理解与实践
1.测试对于编码的重要性
代码需要测试来肯定它的价值,一个无法通过测试的代码,就是一串乱七八糟的字符而已;同样的,代码需要测试来完善它,一遍是很难写出完美的代码的只能通过一遍一遍的测试来修正来达到预期的目标。在各个作业之中仅仅只是一句简单的print输出Wrong Format就能够得到分,这无疑肯定了测试的重要性。
课程收获
学Java之前就听说Java很难,学了之后也确实感受到了,想要学好确实不容易。Java后面的知识点非常多,继承.多态.接口等等,这需要我们对代码进行大量的实践,通过代码来体会那些抽象的东西。特别是pta的作业虽然很难但都是有完整的类图,这大大节省了写代码的时间,这些类图也向我们展示了面对对象设计的基本思路,也严格的体现了OO设计的基本原则,加强了我们对Java设计的理解。
学习的时候方法很重要,比如在编程的时候遇到了问题,可以先尝试自己写,不要一遇到难题就找别人请教,这样容易产生依赖性,丧失学习的乐趣。其次,网络是一种宝贵资源,不熟悉的知识点,遇到的难题都可以找到方法。
对课程的建议
老实说我觉得现在的上课模式很好,直接通过完整的代码来讲解知识点,这样做便于理解再辅以课堂练习现场操练加速记忆,很适合学习Java。Java课后的练习也能够及时的巩固上课的时候学习的知识点,对代码实践是最好的学习方法。

浙公网安备 33010602011771号