第八周作业

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

教材学习内容总结

1.学习了异常这个类,其中比较容易搞错的就是异常不是语法错误(就是我们在编写代码时少写或多写了符号了之类的)是在运行时产生的已经编译成功,还有一个小知识点就与异常相似的错误(error)但他是不可恢复的情况程序员也无能为力。
2.捕获异常,用try-catch-finally语句将异常抛出,无论是否异常finally语句中的内容都执行,可以用来在后期的关闭管道
3.I/O流,I/O流有不同的分类的方式,可分为输入流与输出流,字符流与字节流,节点流与处理流有ImportStream和OutputSteam两个抽象类下面的子类来组成。I/O是对数据进行读写操作。
4.内部类,就是在一个类中又加入一个类,在内部的这个类就可以使用外部类的变量等。

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

  • 问题1:在学过程中视频中提及到了一重要的模式就是装饰者模式。
  • 问题1解决方案: 装饰者模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。它具有以下优点:
    1. 装饰者模式与继承关系的目的都是要扩展对象的功能,但是Decorator可以提供比继承更多的灵活性。
    2. 通过使用不同的具体装饰类以及这些装饰类的排列组合,设计师可以创造出很多不同行为的组合。
  • 问题2:有关课本上P270的程序10.4中在leve1方法中有几个陌生的方法getMassage和printStackTrace,我刚开始不大理解他们的作用。
  • 问题2解决方案:我去查找Java帮助文档找到了这两个方法的用法的文档之后发现这两个方法是在ArithmeticExecption中的方法,具体的使用如下图:

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

  • 问题1:在前一周的博客中提及到的有关TDD的学习。

  • 问题1解决方案:课下查找了一些资料整理一下笔记,(上周博客)

  • 问题2:就是刘伟康同学提出的那一个有关异常抛出的问题视频中老师先让程序程序休眠就是用了sleep这个方法在运行时就会发生错误但是后来加了try-catch结构之后还是没有输出。

  • 问题2解决方案:这个问题刘伟康同学在答疑/讨论区给出了答案,当线程活动期间或之前处于休眠状态时会抛出InterredException的异常。而在sleep又规定当抛出该异常时当前中断状态被清除,所以是在运行时把出现的异常信息清除了。

代码托管

代码量

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

上周考试错题总结

  • The commitment to execute certain code to carry out a method invocation is referred to as _________________(通过提交来执行确定的代码从而完成方法的调用,被称为(B).
    A .execution(执行)
    B .binding(绑定)
    C .polymorphism(多态)
    D .inheritance(继承)
    E .none of the above(以上都不正确)
    在课本的P246页有相关的概念。

  • Let Dog be a subclass of Animal, and suppose Animal has a method called speak() that is overridden in the Dog class. Consider the following code(假设Dog是Animal的子类,且Animal有一个方法speak(),该方法在Dog类中被重载).

Animal spot = new Dog();
spot.speak();

Which of the following is true? (下面哪项是正确的)D
A .This code will result in a compile-time error. (这段代码会引起编译时错误)
B .This code will result in a run-time error. (这段代码会引起运行时错误)
C .The speak method defined in the Animal class will be called. (将会调用Animal类中的speak方法)
D .The speak method defined in the Dog class will be called. (将会调用Dog类中的speak方法)
E .The speak method will not be called at all. (不会调用任何speak方法)
这是多态的表现用父类来创建子类对象第一句相当于Dog spot = new Dog()就是创建了一个Dog的实例对象。

  • Which of the following methods are included with any object that implements the Iterator interface? (下面哪个方法包含了实现Iterator接口的对象?(C)
    A .next
    B .hasNext
    C .toString
    D .all of the above(以上都正确)
    E .a and b(a和b)
    查阅Java的帮助文档得C:


  • Consider a reference declared in the following manner(思考下面方式声明的一个引用).

Animal a;

This reference may only point to an object that created by instantiating the Animal class(这个引用只能指向一个通过初始化Animal类创建的一个对象(B).
A .true
B .false
这引用变量还可以指向Animal的子类,

  • Let Animal be an interface. Then it is possible to create an object by instantiating the Animal interface(假设Animal是一个接口。那么,通过初始化Animal接口创建一个对象是可能的(B).
    A .true
    B .false
    接口只能在实现之后才能实例化,接口中只有抽象方法。

  • FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准)定义了两层规范,第一层是(B)?
    A .
    /etc 应该放置设置文件
    B ./ 下面的各个目录应该要放什么文件数据
    C .针对 /usr 及 /var 这两个目录的子目录来定义
    D ./bin 与 /sbin 则应该放置可执行文件
    E ./var/log 放置系统登录文件
    F ./usr/share 放置共享数据

  • Linux中获取当前路径的绝对路径的命令是(D)?
    A .cd
    B .passwd
    C .tree
    D .pwd

结对及互评

点评过的同学博客和代码

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

这周的学习的主要内容是学习异常的有关内容,是比较重要的一段。学习的时间也进入到中期现在学习的内容难度越来越大,同学之间的差距也越来越大了自己与那些学习积极的同学还是有一定的差距,自己在发现问题、描述问题和解决问题的这一方面还是不足,有些时候想好一个 问题之后去表述时发现怎么表述也表述不出来,尽量与刘伟康张之睿等同学学习吧!

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 77/77 1/1 14/14
第二周 331/408 1/2 16/30
第三周 315/723 1/3 15/45
第四周 848/1546 2/5 20/65
第五周 959/2505 1/6 10/75
第六周 720/3225 1/7 15/90
第七周 428/3653 2/ 9 15/105
第八周 679/4331 1/10 15/120

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

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

  • 计划学习时间:15小时

  • 实际学习时间:20小时

  • 改进情况:
    每周刚刚开始的那几天的利用并不充分,好像就是什么都没干就到周三周四了。

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

参考资料

原文地址:https://www.cnblogs.com/CHUNWANG/p/6740909.html