20162308《程序设计与数据结构》第5周学习总结

20162308 2016-2017-2 《程序设计与数据结构》第5周学习总结

教材学习内容总结

  1. Java 的类和对象
  2. 类中的方法
  3. 数据结构导论(熟悉Java Collection API)
  4. 完成 四则运算 作业

教材学习中的问题和解决过程

  • 1 关于 static
  • 阅读材料:
    JAVA 堆栈 堆 方法区 静态区 final static 内存分配 详解
    java中内存分配以及static的用法
  • 在上周和谢涛老师讨论的时候把static的概念搞清楚了。2017-03-30 (1).png
  • 2 接口和抽象类
  • 阅读材料:
    详细解析Java中抽象类和接口的区别
    《Java编程思想》(Think in Java) 第一章 对象导论 - 随多态而生的可互换对象 - 抽象基类和接口
    《Java程序设计与数据结构》 第八章 继承 第久章 多态
  • 接口是对动作的抽象,抽象类是对根源的抽象。

  • 这句话说明了接口和抽象类本质上的区别。Java中抽象类的继承和其他的语言有一些区别,不支持多重继承,对于接口,可以继承多个。从功能上来说,抽象基类能够实现相比于接口更丰富的功能,可以定义对象的属性,并实现方法,而接口定义抽象的方法,并且不能拥有变量。
  • 3 Collection 类
  • java中的Collection 类应该类似于C++的STL

代码调试中的问题和解决过程

  • 完成四则运算的过程中遇到了一些问题,比如怎么随机生成一个合理的、可接受的四则运算表达式?Fraction类中应该设计哪些方法,哪些变量?Operator类中方法重载该如何实现?
  • 做中学!既然想不出怎么做是最好的,那就把能想到的方法都试一遍,挑选一个最优的,或者是结合几种方案,根据不同情况,设计出最优的方法。

代码托管

  • 代码提交过程 & 代码量截图:
  • 2017-03-31 (2).png
    2017-03-31 (3).png

上周考试错题总结

  • 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小时

参考资料

posted @ 2017-04-02 22:45  20162308马平川  阅读(156)  评论(7编辑  收藏  举报