代码来自闵老师”日撸 Java 三百行(11-20天)“,链接:https://blog.csdn.net/minfanphd/article/details/116974461
今天的内容是对前面的学习进行总结,根据自己写程序的体会回答下面几个问题。(下面是根据自己最近的体会进行的回答,答案不一定正确。)
1、面向对象与面向过程相比, 有哪些优势?
答:面向对象是对对象进行操作,对对象进行了封装。每个对象具有独立性,有自身的数据和属性,更符合人的逻辑。面向过程更符合程序的逻辑,也就是更符合计算机的逻辑,一步一步按部就班的实现程序的最终目的。
2、比较线性表和链接的异同.
答:链表有头部和尾部,是带有指针的。线性表的序号通过数组的下标来区分,具有顺序性。链表可以动态的申请和释放内存空间,顺序表不行。
3、分析线性表和链接的优缺点.
链表优点:可以动态的申请和释放内存空间,顺序表不行。
顺序表:顺序表的实现更简单,没有指针,不需要另外开辟指针空间。
4、分析调拭程序常见的问题及解决方案.
答:常见问题还不好说,针对自己这些天出现的问题谈一谈体会。有一次对一个变量进行了两次声明;一次是字符串双引号打成了单引号;一次把本该在在for循环外的语句写在了循环体内部。调试的时候,首先根据报错信息对相应行的代码进行检查,如果相应行没有错误,就用输出语句对相关的方法进行分别测试。根据输出值思考问题到底出在哪个方法中。
5、分析链队列与循环队列的优缺点.
答:循环队列申请了一个永久空间,可以循环利用,自己掌控内存的使用和回收;缺点是所申请的内存被永久占用。链队列由系统进行内存的分配与回收,更节省内存空间,但是自己不能掌控内存。循环队列存在队列满的情况,链队列可以动态的申请和释放。
6、第 18 天建立的两个队列, 其区别仅在于基础数据不同, 一个是 int, 一个是 char. 按这种思路, 对于不同的基础数据类型, 都需要重写一个类, 这样合理吗? 你想怎么样?
答:觉得这样不合理,但是想来想去没有想到好的解决办法。如果说用强制转换,但是内部的操作如果不重新写,又没有办法。不同基础数据类型相当于是不同的对象,对于面向对象来说,数据及其上的操作是统一不可分的。
(分界线,后面查询资料再进行梳理回答)
补充回答:对于第六个问题,通过对后面代码的学习,目前了解到可以有两种方式。第一个方式是写一个存储类的类,也就是让所存储的类作为基础数据类型。取用存储的类(integer、double、string)的时候进行强制转换即可。第二种方式是用泛型实现。