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

教材学习内容总结

  • 1.关键概念

    • 1.面向对象程序设计的核心是类的定义,它代表了状态和行为的对象。
    • 2.变量的作用域依赖于变量声明的位置,作用域决定在哪里可以使用变量。
    • 3.对象应该是封装的,以防对数据的不适合访问。
    • 4.方法的返回值类型应该与方法头中规定的返回值类型一致。
    • 5.构造方法不能有任何的返回值,即使是void也不行。
    • .......
  • 2.类定义的结构和内容,类之间的关系,构造方法的目的结构。

  • 3.类的基本编写方式

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

  • 问题1:程序5.11的理解问题
    问题描述:程序5.11是学到现在书中出现的代码量最多的程序,RationalNumber类包含了对有理数的各种操作,包括乘法和除法。这对结对编程项目-四则运算很有帮助。
    解决途径:
   public RationalNumber (int number ,int denom){if (denom == 0)denom =1;if (denom < 0){number = number * -1;denom = denom * -1;}numerator = number;denominator = denom;reduce ();}
  • 1.运用构造函数,if条件语句,巧妙的欲先处理了分数分母为零及为负数的情况,并将值赋给成员变量,最后调用私有方法reduce.
    private void reduce (){ if (numerator != 0){int common = gcd (Math.abs(numerator),denominator);numerator = numerator / common;denominator = denominator / common;}}//--------------------------------------------------// Computes and return the greatest commom divisor of the two//--------------------------------------------------private int gcd (int num1,int num2){while (num1 != num2)if (num1 > num2)num1 = num1 - num2;elsenum2 = num2 - num1;return num1;}}
  • 2.reduce方法引用了gcd方法,这是利用逐差法求分数的最大公约数,并化简为最简形式。
        public RationalNumber multiply (RationalNumber op2){int numer = numerator * op2.getNumerator();int denom = denominator * op2.getDenominator();//int numerator2 = op2.getNumerator() * denominator;//int difference = numerator1 - numerator2;//return new RationalNumber (difference, commomDenominator);return new  RationalNumber (numer , denom);}public RationalNumber divide (RationalNumber op2){return multiply (op2.reciprocal());}
  • 3.有关除法运算,首先调用reciprocal方法将分子分母调换便于计算,再引用multiply方法,而multiply间接调用reduce来化简。
  • 问题2:关于toString方法
    详述:在第七章中就见到过toSting方法,在第五章中出现多次,于是仔细了解了一番
    在将对象传递给print或println方法时,以及将一个对象与一个字符串链接是,都会自动调用对象的toString方法。

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

  • 问题1:误在构造方法中打入return.

    解决过程:构造方法没有返回类型(甚至没有void),所以它不能返回任何值。
    补充:对返回值的概念有点模糊,论坛,里面有很形象的比喻

    • 1.为什么要用到返回值呢?比如说你想要开门,可以将返回值比作一把钥匙,你就可以开门,没有return就不能开门
    • 2.返回值就像你工作辞职的时候 你得递交辞职信 但是老板看不看就不知道了

代码托管

上周考试错题总结

  • An array cannot hold object types.(数组中不能包含对象类型)(错误)
    数组可以保存任何的基本类型或任何对象类型。保存在数组中的值有时称为数组元素,保存的值的类型称为数组的元素类型。
  • Which of the statements is true about the following code snippet?(对于下面的代码段,说法正确的是?)

       int[] array = new int[25];array[25] = 2;

    This code will result in a run-time error. (代码会产生运行时错误)
    在Java中许多运行时错误称为异常exception,编译程序进行检查,知识查看是否有语法错误。

  • An infinite loop is not a compile-time error.(无限循环不会产生编译时错误)
    无限循环的语法无错误。
  • A while statement always executes its loop body at least once.(while语句的循环体至少会执行一次)
    while循环在布尔表达式为真是重复执行指定的语句。首先要计算表达式的值,所以有可能一次都不执行对应的语句。
  • The ___________________ statement causes execution of a loop to stop, and the statement following the loop to be subsequently executed.(_________ 语句会导致退出循环,然后顺序执行循环后面的语句)
    break语句对循环的影响类似在switch语句中,即终止循环的执行,转去执行循环之后的语句,continue语句类似break,但会再次计算循环条件,如果仍为真,则再次执行循环体。

    结对及互评

  • 上周博客互评情况
    • 20162327王旌含
    • 四则运算深度思考学习,在上周基础上根据本周内容优化代码(上周的思路很幼稚,还有待改进)
  • 上周博客互评情况
    • 20162303
    • 20162329

其他(感悟、思考等,可选)

这章的学习并配合视频的学习让我对对象和类的概念有了很好的理解,第七章的不解也有所改变,类的学习,让我在结对编程项目中有了更好的思路,现在回想起当时的...感觉就在菜鸡互啄,很尴尬,虽然现在看来当时有点搞笑,但也很佩服自己,至少能想到是不?

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 070/200 1/2 20/20
第二周 300/500 2/4 30/38
第三周 620/1000 3/7 51/60
第四周 1200/200 5/9 80/90
第五周 1500/500 6/11 00/120
第六周 000/1000 0/11 00/120
第七周 000/1300 0/13 00/120

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难,软件工程 估计方法

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表)

参考资料

  • 《Java程序设计与数据结构教程(第二版)》

  • 《Java程序设计与数据结构教程(第二版)》学习指导
  • ...

转载于:https://www.cnblogs.com/wbiao21/p/6657893.html

王彪20162321 2016-2017-2 《程序设计与数据结构》第5周学习总结相关推荐

  1. 20172304 《程序设计与数据结构》第九周学习总结

    20172304 <程序设计与数据结构>第九周学习总结 教材学习内容总结 本章是第十五章,主要介绍了图的概念. 首先我来介绍一下图的基本结构. 从逻辑上讲,图是由边和结点组成的,在我的理解 ...

  2. 20162302 《程序设计与数据结构》第一周学习总结

    20162302 2017-2018-1 <程序设计与数据结构>第一周学习总结 教材学习内容总结 很多情况下时间和空间不可兼得.在不同的情况下,要么用时间换空间,要么用空间换时间. 引出算 ...

  3. 20172315 2017-2018-2 《程序设计与数据结构》第九周学习总结

    学号 2017-2018-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 异常是定义一个非正常情况或错误的对象,由程序或运行时环境抛出. 异常与错误不同,错误代表不可恢复的问题 ...

  4. 20172304 《程序设计与数据结构》 第二周学习总结

    20172304 <程序设计与数据结构>第二周学习总结 教材学习内容总结 本周主要学习了第三章和第四章的内容 第三章 集合概述--栈 3.1集合 集合是一种聚集组织了其他对象的对象. 集合 ...

  5. 20162329张旭升 2016-2017-2 《程序设计与数据结构》第九周学习总结

    20162329张旭升 2016-2017-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 1.建立数据库连接:我们是通过老师给的XAMPP程序来配置自己的数据库,然后根据教程 ...

  6. 20162329 2017-2018-1 《程序设计与数据结构》第九周学习总结

    第九周学习总结 一.学习目标 二叉查找树的理解 二叉查找树的实现 平衡二叉查找树 哈夫曼树的实现 堆的理解 堆的实现 二.学习内容 1.二叉查找树 思路: 二叉查找树与一般二叉树的区别在于,二叉查找树 ...

  7. 20162303《程序设计与数据结构》第一周学习总结

    学号 2016-2017-2 <程序设计与数据结构>第1周学习总结 教材学习内容总结 本周学习了基本的JAVA知识,虽然比较基础,但是在实际过程中还是出现了许许多多的问题,代码一遍遍的敲错 ...

  8. 20162330 2017-2018-1《程序设计与数据结构》第二周学习总结

    2017-2018-1 学习总结目录: 1 2 3 5 6 7 9 10 11 12 目录 0. 本周学习内容总结 0.1 Comparable接口与Comparator接口的使用 0.2 泛型方法设 ...

  9. 20172323 2017-2018-2 《程序设计与数据结构》第九周学习总结

    教材学习内容总结 本周学习第十一章异常和第十二章 第十一章-异常 异常是一个定义非正常情况或错误的对象,由程序或运行时环境抛出,可以根据需要进行相应的捕获和处理. 错误和异常都是对象,代表非正常情况或 ...

  10. 20172314 2018-2019-1《程序设计与数据结构》第一周学习总结

    教材学习内容总结 概述 软件工程:是一门关于高质量软件开发的技术和理论的学科,用来控制开发过程,实现高质量的软件. 软件工程的目标:正确性.可靠性.健壮性.可用性.可维护性.可重用性.可移植性.运行效 ...

最新文章

  1. Codeforce 水题报告(2)
  2. 给文本框添加模糊搜索功能(“我记录”MVC框架下实现)
  3. POJ3277(矩形切割)
  4. 【LeetCode笔记】2. 两数相加(JAVA、链表)
  5. GHOST系统锁定主页常用软件及解决方案
  6. hue是不是集成了oozie_在hue里面集成spark2,使用oozie的调度
  7. 泡泡玛特回应与肯德基联名引发炒作:暂停食品行业的定制盲盒业务
  8. 手把手教你安装 FastAdmin 到虚拟主机 (phpStudy)
  9. python和java选择哪个-观点|Java 与 Python:你应该选择哪个?
  10. 沈逸老师PHP魔鬼特训笔记(3)
  11. Harbor 2.1发布,工程师的发际线有救了!
  12. popen 如何获取指令执行情况_php通过popen获取的一个命令的返回值如何分析出来...
  13. C# BackgroundWorker使用讲解
  14. 管家婆服装.NET II TOP V6.5-VIP卡使用注意事项(一)
  15. 浅谈ARP攻击现象和处理办法
  16. excel wind插件使用_Python和wind的交互—在债券中的应用
  17. CMake 编译时出现错误 coffe转换到 COFF 期间失败: 文件无效或损坏
  18. BootCDN——React入门学习
  19. windows10安装keras教程
  20. 华东地区博友链接集合(陆续增加中)

热门文章

  1. 面试官问:能否模拟实现JS的call和apply方法
  2. 苏宁易购:Hadoop失宠前提是出现更强替代品
  3. ovirt官方安装文档 第三章
  4. UVA - 10061 How many zero#39;s and how many digits ?
  5. 《JavaScript机器人编程指南》——1.2 NodeBot是什么,基本词汇还有哪些
  6. 〖Windows〗Linux的Qt程序源码转换至Windows平台运行,编码的解决
  7. IT基础设施最佳实践ITIL
  8. python数据库模糊查询_Python操作mongodb数据库进行模糊查询操作示例
  9. appium启动app失败_Appium-Desktop Capability 配置及启动App演示
  10. Element.shadowRoot