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

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

教材学习内容总结

  • 一、多态与后绑定:多态是指一个引用变量在不一样时刻指向不一样对象。多态实现的基础是后绑定(late/dynamic binding)
    多态存在的三个必要条件
    继承
    重写:是子类对父类的容许访问的方法的实现过程进行从新编写, 返回值和形参都没法改变。
  • 二、.接口:一组抽象方法。接口能够多重继承。
  • 三、接口实现多态:接口名可用来声明引用变量。调用接口变量时只能调用接口中定义的方法,由于编译器只能断定对象是接口类的,子类自定义的方法没法响应。html

  • 四、异常与异常处理:
    • 异常是一个对象,与错误相似。异常能被抛出、捕获,必要时进行处理。
    • 异常处理三种方式:
      不处理:程序非正常终止,打印错误信息和调用栈跟踪
      在异常产生的地方处理:捕捉异常-try catch
      在程序的其余地方处理:抛出异常-throws throw
  • 五、I/O异常(其中还有老师上课讲的把数据写入文本,和从文本中读取数据内容)
    三种标准I/O流(in、out、err)
    可检测的IOExceptions异常java

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

  • 问题1:throws和throw关键字有什么区别?
  • 解答:
    一、使用throws声明的方法表示此方法不处理异常,而由系统自动将所捕获的异常信息“抛给”上级调用方法。使用throws声明能实例化异常类对象,人为抛出异常。
    • throw 在方法体内使用,throws 函数名后或者参数列表后方法体前。
    • throw 强调动做,而throws 表示一种倾向、可能但不必定实际发生。
  • 问题2:接口能够实现接口吗?
  • 问题2解决方案:不能实现接口,因接口的成员方法都具备抽象属性,不具备方法体,没法实现继承的接口。
    • 具体如何实现没有研究。

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

  • 问题一:如何达到题目要求“直到输入“DONE”为止”?
  • 问题一解决方法:这个问题出现是由于我理解题目出现了问题,检测到输入得单词为“DONE”就中止,而后判断总输入字符串是否超过长度20个,若是是,就抛出异常。无异常的话能够再次输入。git

  • 问题二:IO操做及异常处理
  • 问题二解决方法:刚听完IO的问题要尝试去编写IO的代码,对应的writer和reader什么的不了解,不过能够参考参考学长学姐的代码。代码中有BufferedOutputStream和BufferedInputStream两种可供理解,两种字节流可使用,进行往文件里面写入读出。算法

  • 问题三:读取文件时遇到了空格,在I/O异常练习时,遇到了读文件的操做,但读取时遇到空格。
  • 问题三解决办法:最后找到string.split方法,以某一特殊符为界,分割字符串后将每一部分存入数组。数组

代码托管

(statistics.sh脚本的运行结果截图)数据结构

上周考试错题总结

  • 错题1:A Java program can handle an exception in several different ways. Which of the following is not a way that a Java program could handle an exception?
    A . ignore the exception
    B . handle the exception where it arose using try and catch statements
    C . propagate the exception to another method where it can be handled
    D . throw the exception to a pre-defined Exception class to be handled
    E . all of the above are ways that a Java program could handle an exception
    错误:D 正确:E
    解析:java处理异常的三种方式:1.根本不处理异常。2.当异常发生时处理异常。3.在程序的某个位置集中处理异常。函数

  • 错题2:An exception can produce a "call stack trace" which lists:
    A . the active methods in the order that they were invoked
    B . the active methods in the opposite order that they were invoked
    C . the values of all instance data of the object where the exception was raised
    D . the values of all instance data of the object where the exception was raised and all local variables and parameters of the method where the exception was raised
    E . the name of the exception thrown
    错误:D 正确:B
    解析:调用oop

  • 错题3:An exception that could also arise in the try statement that does not have an associated catch statement is:
    A . ClassNotFoundException
    B . IllegalArgumentException
    C . NegativeArraySizeException
    D . NullPointException
    E . OutOfMemoryException
    错误:A 正确:D
    解析:try语句后没有catch语句会出现NullPointException学习

  • 错题4:We compare sorting algorithms by examining
    A the number of instructions executed by the sorting algorithm
    B the number of instructions in the algorithm itself (its length)
    C the types of loops used in the sorting algorithm
    D the amount of memory space required by the algorithm
    E whether the resulting array is completely sorted or only partially sorted
    分析:这道题考到的知识点为:不一样的排序算法在执行时须要不一样数量的指令。因此咱们经过检查排序算法执行的指令数,来比较排序算法。因此应该选a。ui

  • 错题5:Polymorphism is achieved by
    A . overloading(重载)
    B . overriding(重写)
    C . embedding(嵌入)
    D . abstraction(抽象)
    E . encapsulation(封装)
    分析:这道题考查的是多态性是经过什么实现,我选择的是的抽象,而答案是b重写:重写提供了多态性,由于适当的方法是根据当前被引用的对象而调用的,因此应该是重写实现多态性。

  • 错题6: All run-time Errors throw Exceptions.
    正确答案:B.false
    缘由:结果显而易见,若是咱们用try-catch语句就能够不抛出了。

  • 错题7:A try statement must have at least one catch statement, but could have many catch statements, and may or may not have a finally clause.
    正确答案:A.true
    缘由:点错了,使用try以后必需要有至少一个catch,至少在IDEA中若是没有接下来的catch就会出现红线提示,finally是无关紧要的,有需求就能够用。

    结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):
    • 不使用Markdown不加分
    • 有语法错误的不加分(连接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)
    • 缺乏“教材学习中的问题和解决过程”的不加分
    • 缺乏“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺乏“结对及互评”的不能打开的不加分
    • 缺乏“上周考试错题总结”的不能加分
    • 缺乏“进度条”的不能加分
    • 缺乏“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)
    • 一周提交次数少于20次的不加分
  6. 其余加分:
    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进状况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深刻的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习状况真实可信的加1分
  7. 扣分:
    • 有抄袭的扣至0分
    • 代码做弊的扣至0分
    • 迟交做业的扣至0分

点评模板:

  • 博客中值得学习的或问题:
    • 同窗们已经有意识的碰见错误就截图,给后面写博客的各类方便不少,我一直忘记只能从新敲一遍。
  • 代码中值得学习的或问题:
    • 条条大路通罗马,好多同窗能够曲线思惟弄出代码,听他们讲解后真的很佩服。
  • 基于评分标准,我给本博客打分:11分。得分状况以下:正确使用Markdown语法+1.教材学习中的问题和解决过程+2.代码调试中的问题和解决过程+2.感想,体会不假大空+1.错题学习深刻+1.点评认真,能指出博客和代码中的问题+1.结对学习状况真实可信+1.课后题有验证+1,进度条有记录+1.

  • 参考示例

点评过的同窗博客和代码

  • 本周结对学习状况
  • 上周博客互评状况

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

  • 每节课的考试让我十分吃不消,不仅是英语单方面的问题,Java也有许多问题亟待解决,由于课本版本不一样,找起知识点来比较麻烦。
  • 好多同窗好牛,本身好菜,各类把打好的代码推翻重来,参考别人代码改来改去把本身的程序变成了四不像,运行不了,本周更加熟悉了运行一个目的堆了四五个程序的Java常态,继续虚心学习吧。
  • 实验做业愈来愈难,我愈来愈菜,随时gk。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 350/500 2/4 24/38
第三周 512/1000 3/7 22/60
第四周 1158/1300 4/9 35/90
第五周 2905/3000 6/5 24/24
第六周 3927/4000 2/2 26/30

参考资料

相关文章
相关标签/搜索