20182311 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结

目录

  • 教材学习内容总结

    • 教材4.8.1及第五章
  • 教材学习中的问题和解决过程
  • 代码调试中的问题和解决过程
  • 代码托管
  • 上周考试错题总结
  • 结对及互评
    • 点评过的同学博客和代码
  • 感悟
  • 学习进度条
  • 参考资料

正文

20182311 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结

教材学习内容总结

教材4.8.1及第五章

  1. 迭代器和for循环
  2. 类和对象:子类与父类;继承。声明一个类不会分配内存空间,只有实例化对象才会分配空间。目前已知两种调用类的方法,通过实例化的对象调用,静态方法直接使用类名调用方法。
  3. 可见性修饰符:private、protected、public。protected可以保证父类的实例变量私有而能被子类继承,提供了继承之间最恰当的封装机制。
  4. UML类图
  5. 静态方法与静态类:静态类不能调用非静态变量。静态变量由类中所有实例共享,改变一个类中的静态变量相当于修改了所有类中该静态变量的值。
  6. 类关系:依赖、聚合(has-a)。

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

  • 问题1:删去调用对象的类内的toString方法,使用Println方法也能产生。
  • 问题1解决方案:所有类都直接或间接从Object类中衍生,Obeject中含有toString()方法被所有子类继承。但是直接用println(object)打印出来的字符串只有对象名和一些奇怪的数字。一般根据自身需求对toString进行override。
  • 问题2:怎样理解接口?抽象类与接口的区别?
  • 问题2解决方案:理解:接口是由一组抽象方法组成。
    • 接口不能含有方法体,抽象类可以做方法实现。
    • 接口只能使用静态常量,抽象类可有正常变量。
    • 接口必须被类实现(implements),抽象类必须被子类继承(extends)
    • 抽象类是抽象类别,接口是抽象功能。
    • 一个类只能有一个继承关系,但可以有多个接口。java单继承,但接口可以继承多个接口。
    • 接口中的抽象方法可以缺省abstract,抽象类中抽象方法不可省。
  • 问题3:抽象类与抽象方法的关系?为啥要抽象类?
  • 问题3解决方案:含有抽象方法的类必须被声明为抽象类,抽象类可以不含有抽象方法。和接口类一样,抽象类不能实例化。抽象类是顶层的设计。

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

  • 问题1:count虽然已经有定义,但是在上一个方法中的局部变量,为啥会报错?
  • 问题1解决方案:漏了一个大括号导致变量作用于改变,本身理解没有问题。
  • 问题2:先使用遍历完一遍数组,再使用迭代器遍历数组,发生Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 2(数组越界异常),且只有一次输出。
  • 问题2解决方案:把迭代器和数组遍历顺序调换发现有了两次输出,应该是迭代器的原理及用法问题。
  • 迭代器原理:迭代器的原理是用指针指向数组,首先用hasNext()判断是否有下一个元素(程序中应该直接在这里返回false退出了方法),再用next将指针挪至下一个位置。
  • for循环内部其实也是调用iterator遍历的。但是调换顺序后结果变化应该是进行for循环前虽然指针已经指向数组最后一位,但是for的循环初始条件再一次将指针调制初始位置。
  • 问题3:枚举类型不能是数字?
  • 问题3解决方案:枚举类型也是一种类,不能用数组来理解。1,2,3,包括单字符是一种数据类型,不是对象也不是变量,不能用字面常量来定义枚举类型,他们不能被赋值。

代码托管

上周考试错题总结

  • 错题1:Which of the following is true regarding the mod operator, %? (关于求余运算符%,下面哪项是正确的?)
    A .It can only be performed on int values and its result is a double
    B .It can only be performed on int values and its result is an int
    C .It can only be performed on float or double values and its result is an int
    D .It can only be performed on float or double values and its result is a double
    E .It can be performed on any numeric values, and the result always is numeric
  • 反思:正确答案:E。尽管通常使用整数值,但%运算符可以用于所有类型的数字数据。
  • 错题2:Which properties are true of String objects?
    A .Their lengths never change
    B .The shortest string has zero length
    C .Individual characters within a String may be changed using the replace method
    D .The index of the first character in a string is one
    E .Only A and B are true
  • 反思:正确答案:E。字符串一旦创立,不可改变,长度可以为0。调用replace方法不是改变原有的字符串,而是在原有字符串的基础上修改并把加过存入一个新的字符串。
  • 错题3:What happens if you attempt to use a variable before it has been initialized?
    A .A syntax error may be generated by the compiler
    B .A runtime error may occur during execution
    C .A "garbage" or "uninitialized" value will be used in the computation
    D .A value of zero is used if a variable has not been initialized
    E .Answers A and B are correct
  • 反思:正确答案:E。很多时候编译器能够检测未初始化变量的尝试使用,在这种情况下它会产生语法错误。如果使用编译器的逃逸检测,则使用时会出现运行时错误。
  • 错题4:The String class‘ compareTo method
    A .compares two string in a case-independent manner
    B .yields true or false
    C .yields 0 if the two strings are identical
    D .returns 1 if the first string comes lexically before the second string
    E .none of the above
  • 反思:正确答案:C。两个字符串相等输出0,第一个在第二个字符串之前输出-1,否则就输出+1。

结对及互评

点评过的同学博客和代码

感悟

我发现一个快速学习的方法,先去看一堆看不懂的代码,然后再带着问题看书,这样知识点会留下更深的印象,也更有侧重性。不懂的地方不要随便相信书或者别人的博客,自己打一遍还能加深印象。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第一周 246/246 2/2 30/30 初步掌握linux命令、java小程序和jdb调试
第二周 73/319 3/3 30/60
第三周 906/1225 3/6 20/80
第四周 748/1973 2/8 20/100

参考资料

原文地址:https://www.cnblogs.com/lengchong/p/11614535.html

时间: 2024-10-29 04:51:31

20182311 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结的相关文章

《数据结构与面向对象程序设计》第四周学习总结

20182304 2019-2020-1 <数据结构与面向对象程序设计>第四周学习总结 教材学习内容总结 1.本章我们学习了使用并编写我们自己的类:类中有与类同名的构造方法,也可以有set,get,toSring与自己定义的方法.实例化一个对象,可通过该对象使用类里的所有方法.实例数据是每次创造一个实例后自动生成新的内存空间的变量 2.uml类图 :每个类可能包含三部分内容:类名.属性.操作(方法).UML类图有属于自己的语法,变量的类型名在变量名的后面,它们之间用冒号作为分隔符,方法的+和-

20182306 2019-2020-1 《数据结构与面向对象程序设计》第五学习总结

20182306 2019-2020-1 <数据结构与面向对象程序设计>第五学习总结 教材学习内容总结 尽量简单的总结一下本周学习内容 尽量不要抄书,浪费时间 看懂就过,看不懂,学习有心得的记一下 教材学习中的问题和解决过程 问题1:XXXXXX 问题1解决方案:XXXXXX 问题2:XXXXXX 问题2解决方案:XXXXXX ... 代码调试中的问题和解决过程 问题1:XXXXXX 问题1解决方案:XXXXXX 问题2:XXXXXX 问题2解决方案:XXXXXX ... 代码托管 (stat

20182335 2019-2020-1 《数据结构与面向对象程序设计》第四周学习总结

教材学习内容总结 1.继承的基本语法与用法. 2.利用UML类图表示继承关系. 3.在具体编写类的时候,先是数据声明再是方法声明. 4.toString方法用println或print或字符串连接会自动调用. 5.每创建一个对象.都会为类中声明的变量建立新的内存空间. 6.UML图一些基础使用方法. 7.对象应该是自管理的,既对象的实例数据应该仅由该对象来修改,这就构成了封装. 代码调试中的问题和解决过程 问题1:测试代码出现错误 问题1解决方案:junit的方法名必须是textxxx或xxxt

20182322 2019-2020-1 《数据结构与面向对象程序设计》第四周学习总结

教材学习内容总结 1.编写类与方法(构造方法的结构和用途) 2.实际参数与形式参数.public与private.return与void的区别与含义. 3.UML类图的含义与形式 4.静态类(Math类)静态变量.静态方法 5.类间关系(依赖关系.聚合关系.继承关系) 6.接口的使用,能够在某个类中实现接口的方法(Comparable.Iterator) 7.软件活动开发.方法设计.方法重载.测试(黑盒测试.白盒测试) 教材学习中的问题和解决过程 问题1:toString与return返回的值的

20182311 2019-2020-1 《数据结构与面向对象程序设计》实验二报告

20182311 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 冷冲 学号:20182311 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,测试验证.(https://www.cnbl

20182311 2019-2020-1 《数据结构与面向对象程序设计》实验四报告

20182311 2019-2020-1 <数据结构与面向对象程序设计>实验四报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 冷冲 学号:20182311 实验教师:王志强 实验日期:2019年9月30日 必修/选修: 必修 1.实验内容 (一)Java Socket编程 1.学习蓝墨云上教材<Java和Android编程>"第16章 输入/输出 "和"第22章 网络",学习JavaSocket编程 2.结对编程.结

20182311 2019-2020-1 《数据结构与面向对象程序设计》实验五报告

20182311 2019-2020-1 <数据结构与面向对象程序设计>实验五报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 冷冲 学号:20182311 实验教师:王志强 实验日期:2019年10月16日 必修/选修: 必修 1.实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十四章: 参考http://www.cnblogs.c

20182311 2019-2020-1 《数据结构与面向对象程序设计》第7周学习总结

目录 教材学习内容总结 教材第12章 教材第14章 教材第15章 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 2 结对及互评 点评过的同学博客和代码 感悟 学习进度条 参考资料 正文 20182311 2019-2020-1 <数据结构与面向对象程序设计>第7周学习总结 教材学习内容总结 教材第12章 算法效率可以用问题大小(n)和及处理步骤来定义.增长函数表示问题大小与希望优化的值之间的关系,该函数表示算法的时间或空间利用率. 我们更关心算法的渐进复杂度,用来表示增长函

20182311 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结

目录 教材学习内容总结 教材第13章 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 结对及互评 点评过的同学博客和代码 感悟 学习进度条 参考链接 正文 20182311 2019-2020-1 <数据结构与面向对象程序设计>第8周学习总结 教材学习内容总结 教材第13章 查找 线性查找:改进方法:设立哨兵,即将数组下标为0的内容设定为需要查找的数字,这样可以减少每次循环都对下标与最大值的比较,优化算法. 折半查找:时间复杂度为O(log2n),效率高,但只能用于有序线性存