20172311 2017-2018-2 《程序设计与数据结构》第五周学习总结

20172311 2017-2018-2 《程序设计与数据结构》第五周学习总结

教材学习内容总结

第五六章整体上来讲主要学习了条件判断与循环。小的知识点主要还有:

1.语句执行的顺序称为控制流,方法调用会引起控制流的改变。

2.相等性运算符由两个并列的等号组成,不要和只有一个等号的赋值运算符想混淆。

3.相等性运算符和关系运算符的优先级比算术运算符的优先级低。

4.在三种逻辑运算符中,逻辑非具有最高的优先级,其次是逻辑与,最后是逻辑或。逻辑运算符经常用于构成复杂的条件。

5.编写语句时适当的缩进格式能够增强程序的可读性。

6.if-else语句、语句块、if语句的嵌套的使用。

7.数据比较(包括浮点数的比较、字符的比较、对象的比较、)

8、while、do、for语句的使用 。

9、switch语句的使用。

10、迭代器的理解。

11、ArrayList的运0用。

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


  • 问题2:字符与字符串的比较
  • 问题2解决方案:字符和字符串是两种不同的数据类型,字符表示表示了一个字符的原始值;而字符串是对象,由String类定义。相等性运算符和关系运算符可用来比较字符,但是不可以用来比较字符串。比较两个String对象的方法主要有.equalcompareTO

    (1) ==:比较的是两个字符串内存地址的数值是否相等,属于数值比较;

    .equals():比较的是两个字符串的内容,属于内容比较。

    以后进行字符串相等判断的时候都使用.equals()

    参考资料:

    java 中“==”“equal” 的区别

    (2)参考资料:

    JAVA中compareTo方法的详细介绍


  • 问题3:不理解contine语句和break语句之间的区别
  • 问题3解决方案:

    break和continue都是用来控制循环结构的,主要是停止循环。

    (1)break:

    有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。

    这是我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。

    (2)continue:

    continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。

    (3)多层嵌套for循环里的break语句和continue语句

    简单的说就是:在多层嵌套for循环里面break是跳出包continue这一层for循环的所有循环,跳出之后不会继续执行continue这一层for循环的剩余循环而continue是跳出包裹continue这一层for循环的这一次 循环,跳出之后会继续执行continue这一层for循环的剩余循环

    参考资料:

    资料一

    资料二

    资料三


  • 问题四:对迭代器和ArrayList类的理解不清楚
  • 问题四解决方案:

    通过做课本上的习题SR5.24,SR5.25加深了对迭代器的理解,通过做SR5.27,5.28和5.29加深了对`ArrayList类的理解。

    参考资料:

    迭代器的理解

    ArrayList类的理解


  • 问题五:for-each循环是什么
  • 问题五解决方案:

    用到了数组,有点看不懂,暂且记下参考资料:

    "for-each"参考资料

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

  • 问题1:pp5.3中出现把0当作了偶数,出现了逻辑错误。现将错误代码和改过后的代码呈现:

    错误代码:

    改过后的代码:

  • 问题1解决方案:

    通过上网查资 料知道字符型(char)0强转为int后是48,不是0;可以先将字符型(char)转换为String类型,再将String型转换为int型即可,转换方法见截图。


  • 问题2:pp5.7编译时出现如下错误:

  • 问题2解决方案:在使用嵌套语句时一定要弄清楚各层之间的关系,{}的使用要恰当。

代码托管

上周考试错题总结

  • 错题1

    理解情况:构造函数中不返回值,构造方法只有void类型的不返回值。所有的方法都隐含返回某个东西,因此必须有一个返回语句。但是,如果程序员希望编写一个不返回任何内容的方法,因此不需要返回语句,那么它就必须是void方法(该方法的头有“void”作为返回类型)。

  • 错题2

    理解情况:一旦方法终止,用调用该方法的方法控制重新执行。在这种情况下,m2调用m4,因此当m4终止时,m2恢复。

  • 错题3

    理解情况:局部变量是那些被声明为“本地”的方法,也就是说,它们只能在该方法中访问。全局变量是可以从任何地方访问的变量,而参数则是传递到方法中的变量。实例数据可以被认为是整个对象的全局变量。

  • 错题4

    理解情况:实例数据是组成类的实体,可能是任何类型的实体,无论是原始的还是对象的,并且可能是公共的或私有的。通过使用对象作为实例数据,它允许在其他类上构建类。类具有其他类的实例数据的关系称为has-a关系。

  • 错题5

    理解情况:所有被声明为私有的类的所有项只能访问该类中的实体,不管它们是实例数据还是方法。在这种情况下,由于这两种方法只从Rational的其他方法(包括构造函数)调用,因此它们被声明为私有,以提高信息隐藏的程度。注意,答案C不是一个正确的答案,因为reduce方法调用了gcd方法,所以其中一个方法是从构造函数以外的方法调用的。

  • 错题6

    理解情况:在A的情况下,值0 (int)扩大到double。在C的情况下,添加的是生成0.3,然后调用doublefoo。D中的参数列表是非法的,因为它包含两个双参数,而不是1。

  • 错题7

    理解情况:所有的Java方法都返回一个单独的项,不管它是一个原始数据类型的对象,还是void。保留字continue用于退出循环的其余部分并再次测试该条件。

  • 错题8

    理解情况:应该封装一个对象,以保护其数据和方法不受不适当的访问。封装是一种概念,对象应该避免意外(或故意)的误用。

  • 错题9

    理解情况:静态方法是类本身的一部分,而不是实例化的对象,因此静态方法在类的所有实例化对象中共享。由于静态方法是共享的,因此不能访问非静态实例数据,因为所有非静态实例数据都是特定于实例化对象的。静态方法可以访问静态实例数据,因为与方法一样,实例数据在类的所有对象中共享。静态方法也可以访问传递给它的参数

  • 错题10

    理解情况:Java不支持多重继承,但是通过实现接口有一些多重继承的能力。由于类可以实现任意数量的接口,所以该类本质上是使用接口类,就像在这个类中定义了这些接口一样。因此,这个类继承了接口的方法和常量。此外,该类可以扩展另一个类,从而直接和间接地从多个类继承。这与多重继承不完全相同,但它与Java的概念一样接近。

  • 错题11

    理解情况:测试是必需的,因为所有的软件都会有错误。复杂系统在发布之前尤其需要测试。所寻找的错误类型是逻辑错误和运行时错误。在实现过程中,所有语法错误都将被识别和修复。

  • 错题12

    理解情况:可比较的是一个接口,该类必须定义compareTo方法,并显式地声明它实现可与之相比较的实现。大多数类都没有实现可比较的

感想

这两周的JAVA任务完成起来难度很大,有的时候真的有点崩溃,比如自己写的程序由于一些输入错误一次又一次的失败,还有逻辑性的错误更是让人难受。有时候感觉心真的好累好累,不过当看到自己写的程序完美运行的那一刻又觉得这一切是那么的值得。在学习的过程中我意识到方法是很重要的,希望自己在学习的过程中逐渐总结出一套适合自己的学习方法。继续加油吧!加油加油加油!!!!

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 28/28 1/1 16/16
第二周 710/738 1/2 20/36
第三周 426/1164 1/3 16/52
第四周 1068/2232 2/5 20/72
第五周 604/2928 1/6 22/94
  • 计划学习时间:20小时
  • 实际学习时间:22小时
  • 改进情况:增加了在JAVA这门课上的学习时间,以后还得继续加强对JAVA的学习,在增加学习时间的同时要注意提高效率,尽力打好基础。

参考资料

原文地址:https://www.cnblogs.com/zhaoxiaohai/p/8777687.html

时间: 2024-08-28 21:10:18

20172311 2017-2018-2 《程序设计与数据结构》第五周学习总结的相关文章

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

20172311 2017-2018-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 本周对异常和递归进行了学习 异常的处理方式有两种:一种是直接抛出,并从异常处终止程序:另一种是捕获并处理异常,从而使程序继续运行. 捕获和处理异常主要运用try-catch语句. 通过继承Exception类可以自定义一个新的异常 处理IO异常的常用方法是抛出异常. 对于某些问题,递归是最精炼和适当的解法,但对于其他问题,递归则不如迭代方法直接. 教材学习中的问题和解决过程 问题:什么是IO操作

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

20172311<程序设计与数据结构>第一周学习总结 教材学习内容总结 第一章 概述 (基于软件质量问题引导出数据结构) 高质量软件的几个特征: 质量问题: 必须优先考虑质量特征,并尽最大努力实现 数据结构:计算机存储.组织数据的方式 程序=数据结构+算法 事实证明没有一种方案可以解决所有的问题! 第二章 算法分析(高效利用CPU和内存) 增长函数:表示问题大小(n)与我们希望最优化的值之间的关系,该函数表示了该算法的时间复杂度或空间复杂度 大O记法: 所有具有相同阶次的算法,从运行效率的角度

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

20172311<程序设计与数据结构>第一周学习总结 教材学习内容总结 第三章 集合概述 --栈 集合是一种聚集.组织了其他对象的对象,它定义了一种特定的方式,可以访问.管理所包含的对象(称为该集合的元素) 集合可以分为两大类:线性集合和非线性集合 元素彼此之间的组织形式通常由元素添加到集合的次序.元素自身之间的一些内在关系决定 集合是一种隐藏了实现细节的抽象 对象是用于创建集合的一种完美机制 数据类型是一组值及作用于这些数值上的各种操作 集合是一种抽象数据类型 数据结构是一种用于实现集合的基

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

20172311<程序设计与数据结构>第九周学习总结 教材学习内容总结 第十五章 图 堆(heap)就是具有两个附加属性的一颗二叉树 1.它是一颗完全树 2.对每一个节点,它小于等于或者大于等于其左孩子和右孩子 HeapADT的UML描述 addElement方法将给定的Comparable元素添加到堆中的恰当位置处,且维持该堆的完全性属性和有序属性 因为一个堆就是一颗完全树,所以对于插入的新节点而言,只存在一个正确的位置,且它要么是h层左边的下一个空位置,要么是h+1层左边的第一个位置(如果

20172305 2017-2018-2 《程序设计与数据结构》第一周学习总结

20172305 2017-2018-2 <程序设计与数据结构>第一周学习总结 教材学习内容总结 本书的第一章简单的介绍了计算机和JAVA的历史,基础内容很多,代码的讲解还没用正式进入,本周一直在做敲代码的准备,简单敲了老师给的"Hello World!"以及书后的PP1.3.PP1.4等简单的小程序. 教材学习中的问题和解决过程 问题1:三种不同类型的错误,运行错误和逻辑错误的混淆 问题1解决方案:针对EX1.20的"希望做加法时却做里乘法"进行了网上

20172314 2017-2018-2 《程序设计与数据结构》第一周学习总结

20172314 2017-2018-2 <程序设计与数据结构>第一周学习总结 教材学习内容总结 本书第一章为计算机系统概述,前面是一些计算机相关的基础知识,让我对计算机有了一个总体的认识,不再是一片空白了,对主存储器和CPU影响深刻,主存储器用于保存程序和数据,CPU执行程序指令.在接下来的Java编程语言与程序开发部分,开始看的时候有点迷茫,不是很理解,后来先按照作业中附带的流程完成一些代码托管之后,接触了完整的简单的程序之后,再回过头来看书,看到的一些陌生的名词在脑海中就有了实际的对应,

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

20172317 2017-2018-2 <程序设计与数据结构>第一周学习总结 教材学习内容总结 重新温习了一遍计算机的基础 总算了解了局域网广域网因特网万维网这些东西之间的区别了 通过URL的例子知道了网址各个部分的含义 对Java编程语言和程序开发有了一个粗浅的了解 教材学习中的问题和解决过程 问题:练习题SR1.13出现了答案与题目不相符的情况 问题解决方案:题中有个选项是"网卡",答案中没有,反而有个题目没有的选项"调制解调器"(俗称"

20172322 2017-2018-2 《程序设计与数据结构》第二周学习总结

20172322 2017-2018-2 <程序设计与数据结构>第二周学习总结 教材学习内容总结 了解了print与println的区别 了解了字符串的拼接可以用+来完成 了解了转义字符的使用 学会了使用赋值 学会使用部分算术运算符 学会了使用Scanner来实现交互性 教材学习中的问题和解决过程 问题1:在最初接触赋值时对foalt和double的赋值范围不了解 问题1解决方案:使用万能的度娘后看到一个高赞答案后有了了解 问题2:在提前预习时看到2.7图形后敲入的代码无法执行 问题2解决方案

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

20172328李馨雨<程序设计与数据结构>第二周学习总结 又到周五,李馨雨同学要开始写博客了.让我们开始吧!(????) 教材学习内容总结 1.首先是String类定义的字符串,然后是print和println的区别.转义字符的学习.(让我印象深刻的\b[回车符]在字符串结尾不显示哈哈,及其更新的\t[换行符],还有在课堂上真正明白了什么是回车.) 2.了解变量.常量.赋值语句.变量:保存数据的内存单元.常量:坚定自己不会变的数据!除非你用java的反射(有点复杂,改权限.去修饰符等等.没实

20172327 2017-2018-2 《程序设计与数据结构》第二周学习总结

20172327 2017-2018-2 <程序设计与数据结构>第二周学习总结 教材学习内容总结 字符串的拼接和转义序列的使用 变量的声明和使用 讨论语法及表达式的处理 定义数据转换类型和实现类型转换的机制 创建Scanner类 教材学习中的问题和解决问题 暂无 代码学习中的问题和解决过程 问题1:在提交过程中,突然遇到无法上传的情况 问题2解决方案:通过上网查找,输入git pull之后弹出一个编辑框,选择关闭之后,再次用git push就成功了. 问题2:在按照例题2.10打代码时,Jav