zoukankan      html  css  js  c++  java
  • 20182334 2019-2020-1 《数据结构与面向对象程序设计》第六周学习总结

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

    教材学习内容总结

    本周学习了第九章和第十章

    第九章:学习了java面向对象语言的三大特性之一,也是最后一个大类:多态

    所谓多态,在我自己的理解来看,就是相同类型的变量调用同一个方法时表现出来不同的行为特性。
    那么在这里我想把三大特性再写一遍:封装继承多态

    以下是我自己理解:

    封装:把该隐藏的隐藏起来,把该暴露的暴露出来。
    继承:子类拥有自己的属性和方法,即可以对父类进行扩展。
    多态: 相同类型的变量调用同一个方法时表现出不同的行为特征。

    第十章:学习了最后一部分的内容:异常

    有几种导致抛出异常的几种情形:

    • 试图被0除
    • 数组下标越界
    • 没有找到指定的文件
    • 请求的I/O操作没能正常执行
    • 试图访问空引用所指的对象
    • 试图访问空引用所指的对象
    • 试图执行一个违反某类安全措施的操作

    有三种方式处理异常:

    • 不处理异常
    • 在异常发生的地方处理
    • 在程序的其他地方处理异常
    try-catch
    try
    {
        //想要运行的代码
    }
    catch(错误内容)
    {
        //出现错误之后运行的程序
    }
    
    

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

    • 问题1:不清楚何为java重写。
    • 问题1解决方案:参考java方法的重写,java重写是当父类功能无法满足子类的需求时,重写方法,重写的前提是必须存在继承关系。
    • 问题2:在接口处,有两个接口,分别是:Comparable接口和Iterator接口,在Comparable接口里,只有一个方法compareTo,我很好奇他们比的是什么东西,这里老师上课讲过,但是我根本想不起来。
    • 问题2解决方法:用JDK api索引搜索,发现compareTo是要自己定义比较的内容的,根据函数的值是负数、零还是正数,分别返回-1、0、1.

    -问题3:
    -问题3解决方案:

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

    • 问题1:在敲书上代码的时候,敲到“工资”一栏时,发现了一些问题:

    • 问题1解决办法:仔细翻书看书上的知识点,发现了一页上在讲这个问题:

    • 问题2:在volunteer里发现了类似的问题:

    • 问题2解决方案:在StaffMember里加入abstract pay,定义一个抽象的类,从而使volunteer的pay能够用起来。

    在写文件操作时,不懂得老师发的案例的很多方法,以至于很多都是自己利用百度或者JDK api搜索用法

    • 问题3:不明白exists 和createNewFile方法的作用

    • 问题3解决方案:利用JDK api 搜索其用法:

    • 问题4:

    content += new Struing(buffer,0,flag);


    这串代码我不是很明白String在这里的方法是什么?

    • 问题4解决方案:利用jdk api 查到String在这里的方法是 将一个密文解码,0是第一个索引,flag是要解码的字节数。

    • 问题5:不知道read是什么方法?

    • 问题5解决方案:根据JDK api得知:从输入流中将byte.length个字节的数据读入一个byte数组中。

    代码托管

    上周考试错题总结

    • [x] 错题1:Which statement is completely true?
    • A .Java upcasts automatically, but you must explicitly downcast
    • B .Java downcasts automatically, but you must explicitly upcast
    • C .Java expects the user to explicitly upcast and downcast
    • D .Java will both upcast and downcast automatically
    • E .The rules for upcasting and downcasting depend upon whether classes are declared public, protected, or private

    解析:向上转换是完全安全的——它是Java支持的单一继承结构的产物。相比之下,向下转换必须由程序员显式地完成。Java只在一个方向自动进行数据类型转换。上抛和下抛的规则不以任何方式依赖于使用的可见性修饰符。故答案选A。

    • [x] 错题2:Binary search can be used on unsorted data it will just perform more slowly.
    • A .true
    • B .false

    解析:二叉搜索只在数据排序的情况下有效。二分搜索算法假设每对数据元素之间存在严格的升序或降序关系。没有这个顺序,二分查找就不能正常工作。故答案选B。

    • [x] 错题3:Which of the following messages passed to the String str could throw a StringIndexOutOfBoundsException?
    • A .str.length( )
    • B .str.charAt(2);
    • C .str.replace('a', 'A');
    • D .str.equals(str);
    • E .any of the above could throw a StringIndexOutOfBoundsException

    解析:如果字符串方法的参数引用了字符串中超出字符串界限的位置(例如,一个负整数或一个大于或等于字符串中字符数的整数),则抛出StringIndexOutOfBoundsException。这可以在charAt或子字符串方法中发生。故答案选B.

    • [x] 错题4:NullPointerException and ArithmeticException are both derived from which class?
    • A .Error
    • B .Exception
    • C .RuntimeException
    • D .IllegalAccessException
    • E .CheckedException

    解析:这两个异常都是RuntimeException的子异常,而RuntimeException本身就是Exception的子异常。Error是一个可抛出的对象,与Exception不同,IllegalAccessException和CheckedException是Exception的子对象,而不是RuntimeException的子对象。故答案选C.

    • [x] 错题5:In order to have some code throw an exception, you would use which of the following reserved words?
    • A .throw
    • B .throws
    • C .try
    • D .Throwable
    • E .goto

    解析:如果(score < 0)抛出新的IllegalTestScoreException("Input score " + score + " is negative");故答案选A.

    • [x] 错题6:The difference between a checked and an unchecked exception is
    • A .checked exceptions need not be listed in a throws clause
    • B .unchecked exceptions must be listed in a throws clause
    • C .neither kind of exception follows the rules of exception propagation
    • D .an unchecked exception requires no throws clause
    • E .a checked exception always must be caught by a try block; an unchecked exception does not

    解析:选中的异常必须被捕获,或者必须在一个抛出子句中列出。未检查的异常不需要抛出子句。这两种异常都遵循异常传播的规则。故答案选D.

    点评过的同学博客和代码

    • 本周结对学习情况
      • 20182321

      • 结对照片

      • 结对学习内容

        • 共同完成File文件操作
        • 共同解决书上出现的问题。
    • 上周博客互评情况

    其他(感悟、思考等)

    学习到此,java已经结束了,但我感觉自己没有学到很多东西,学的很浅,很薄,像是混沌着学过来的,很难受,可能是学时压缩的缘故,两门大课就这样被压缩成一节课,苍天饶过谁!真的觉得自己没学到什么东西 ,但也只能面对接下来的数据结构,关于Android方面,我问了下老师,得知,只学Android的浅层,都是浅层,没有深入,这种学习生活,不是我想要的,不知道自己该怎么处理自己的矛盾。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 212/212 2/2 17/17
    第二周 132/344 2/4 17/34
    第三周 689/1033 1/5 23/67
    第四周 664/1697 2/7 20/87
    第五周 586/2283 2/9 20/107
    第六周 500/2783 1/10 26/133
    • 计划学习时间:29小时

    • 实际学习时间:26小时

    • 改进情况:心理承受能力越来越好,碰到难题不会怕,而是会慢慢啃他。

    参考资料

  • 相关阅读:
    MySQL的四种事务隔离级别理解(new)
    深入分析ReentrantLock公平锁和非公平锁的区别 (转)
    Ubuntu 安装nginx
    Linux 文件的权限
    java Request 获得用户IP地址
    Maven profile 打包分环境加载不同的资源文件
    JQuery Ajax jsonp
    HttpClient 4.5.3 get和post请求https post
    Jenkins的安装配置
    javascript正则表达式
  • 原文地址:https://www.cnblogs.com/cistineup/p/11681144.html
Copyright © 2011-2022 走看看