经过五周+的对java语言的学习以及对面向对象程序设计的学习,现以学习内容的不同为分类进行总结。
一 、对Java语言的学习
此处只对重难点以及Java语言较笔者以往了解过的C以及Python语言的差异之处进行总结,较为基础的除外。
1.继承
关键词:父类、子类、extends、super
子类拥有父类非 private 的属性、方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。
Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
增加了类之间的耦合性。
2.多态
关键词:继承、重写(override)、接口(interface)、抽象(abstract)
3.类
关键词:class
二、对Java语言的练习
1.PTA习题
共进行了七次PTA习题练习,以下只列出对笔者影响较大的部分题目
题目集01中7-2 日期类设计 以及与其相连接的7-3、7-4.
此题继承于寒假题目集02中7-2、7-3、7-4,由于笔者在寒假题目集02对于前n天和下n天以及相差天数的代码过于繁琐,搬运到此题来之后容易运行超时,所以此题对于笔者几乎是全部重新写了一遍,在此期间也获得了一种新的思路
题目集03中7-2 串口字符解析.
此题主要困扰笔者的在于奇偶校验以及整体的逻辑上,为解决此题也是花费了笔者好一番功夫。
总体来说,PTA上的习题主要起到对Java语言语法的复习功能。
三、对面向对象程序设计的学习
关键词:SRP(Single Responsibility Principe,单一职责原则)、Demeter法则(Law of Demeter)、“开-闭”原则、里氏代换原则、MVC模式
面向对象设计六大基本原则:
1.单一职责原则:一个类只附有一种职责
可以降低类的复杂度,一个类只负责一项职责,其逻辑比负责多项职责简单的多;
2.里氏替换原则:当使用继承时,遵循里氏替换原则。类B继承类A时,除添加新的方法完成新增功能P2外,尽量不要重写父类A的方法,也尽量不要重载父类A的方法
3.依赖倒置原则:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率
4.接口隔离原则
5.迪米特原则:尽量降低类与类之间的耦合
6.开闭原则:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化
对于笔者面向对象程序设计的学习,主要体现在雨刷问题上,从第一次雨刷问题到第五次逐步增强面向对象程序设计的思想