20162308《程序设计与数据结构》第5周学习总结
20162308 2016-2017-2 《程序设计与数据结构》第5周学习总结
教材学习内容总结
- Java 的类和对象
- 类中的方法
- 数据结构导论(熟悉Java Collection API)
- 完成 四则运算 作业
教材学习中的问题和解决过程
- 1 关于 static
- 阅读材料:
JAVA 堆栈 堆 方法区 静态区 final static 内存分配 详解
java中内存分配以及static的用法 - 在上周和谢涛老师讨论的时候把static的概念搞清楚了。
- 2 接口和抽象类
- 阅读材料:
详细解析Java中抽象类和接口的区别
《Java编程思想》(Think in Java) 第一章 对象导论 - 随多态而生的可互换对象 - 抽象基类和接口
《Java程序设计与数据结构》 第八章 继承 第久章 多态 -
接口是对动作的抽象,抽象类是对根源的抽象。
- 这句话说明了接口和抽象类本质上的区别。Java中抽象类的继承和其他的语言有一些区别,不支持多重继承,对于接口,可以继承多个。从功能上来说,抽象基类能够实现相比于接口更丰富的功能,可以定义对象的属性,并实现方法,而接口定义抽象的方法,并且不能拥有变量。
- 3 Collection 类
- java中的Collection 类应该类似于C++的STL
代码调试中的问题和解决过程
- 完成四则运算的过程中遇到了一些问题,比如怎么随机生成一个合理的、可接受的四则运算表达式?Fraction类中应该设计哪些方法,哪些变量?Operator类中方法重载该如何实现?
- 做中学!既然想不出怎么做是最好的,那就把能想到的方法都试一遍,挑选一个最优的,或者是结合几种方案,根据不同情况,设计出最优的方法。
代码托管
- 代码提交过程 & 代码量截图:
上周考试错题总结
- Which of the following lines of code accesses the second element of the first array in a two-dimensional array of integers, numbers, and stores the result in a variable called num?(下面哪条语句访问了一个整型二维数组numbers的第二个元素,并把值存入num变量中)
A.num = numbers[1][2];
B .num = numbers[0][1];
C .num = numbers.getElement(1, 2);
D .num = numbers.getElement(0, 1);
E .none of the above are correct
说起来你可能不信,但真的是当时选的时候手抖了。其他的就没别的错了。
结对及互评
张师瑜的博客内容很丰富,代码量最好改成截图,没有理解我推荐的toString()方法的意思。
其他(感悟、思考等,可选)
- 这周完成了四则运算的编程项目,过程中发现自己还有很多不足。
- 特别是对于该如何科学地设计一个类的时候,我有很多困惑。在学习Java之前,我的编程风格都是偏向于面向过程编程,就算是在使用Python编程的时候,也是更倾向于面向过程的那套方法,思路上没有完全地适应OOP编程。所以在程序设计的时候,就不知道怎么去设计出一个松耦合、高内聚、拓展性强的程序。
- 可能在这个过程中就需要管理学的知识,设计出一个合理的系统。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 26/26 | 1/1 | 7/7 | |
第二周 | 81/107 | 1/2 | 8/15 | String类型的使用 |
第三周 | 80/187 | 1/3 | 5/20 | 位运算 |
第四周 | 300/487 | 1/4 | 8/28 | 动态数组和迭代器 |
第五周 | 132/619 | 1/5 | 18/46 | OOP编程导论 |
-
计划学习时间:5小时
-
实际学习时间:8小时