第八周作业

学号 20162327 《程序设计与数据结构》第8周学习总结

教材学习内容总结

  • 1.java中的异常:一个异常是一个对象,它定义了并不经常出现的或是错误的情形,异常由程序或运行时环境抛出,并能被捕获,需要是可以进行适当的处理。
  • 2.异常输出中的特点:异常输出的第一行表明抛出的是什么异常,并给出了抛出此异常的原因。其余的行称为调用跟踪站,他们表示异常发生的位置。
  • 3.try-catch-finally语句,try的含义为打开文件代码,catch意为关闭文件代码。每个catch字句处理try块中可能抛出的一种特定类型的异常。不论是正常退出try块,还是因抛出一个异常而退出,都要执行finally字句。
  • 4.throw和throws:throw是抛出异常,throws是声明可能会产生异常,让调用该类的函数解决捕捉。
  • 5.java中的IO流:作用是从数据源中读取数据,以及将数据写入到数据目的地当中。
    三种方类:1.第一种分类:输入流、字节流
    2.第二种分类:字节流、处理流
    3.第三种分类:节点流、处理流

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

  • 1问题:装饰者设计模式

  • 1解决方案:
    1、说明:
    装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
    2、装饰模式的特点:
    (1) 装饰对象和真实对象有相同的接口。这样客户端对象就可以以和真实对象相同的方式和装饰对象交互。
    (2) 装饰对象包含一个真实对象的索引(reference)
    (3) 装饰对象接受所有的来自客户端的请求。它把这些请求转发给真实的对象。
    (4) 装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设计中,通常是通过继承来实现对给定类的功能扩展。

    3、装饰模式和继承的不同:

     |装饰者模式| 继承|
     | :----------------:|:----------------:|
     |用来扩展特定对象的功能           |   用来扩展一类对象的功能           
     | 不需要子类         |   需要子类  |          
     |动态地           |  静态地      |      
     | 运行时分配职责           |  编译时分派职责     |     
     | 防止由于子类而导致的复杂和混乱 |导致很多子类产生,在一些场合,报漏类的层次|
    

更多的灵活性 | 缺乏灵活性 |

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

  • 1问题:FileReader如何读取数据
  • 1解决方案:步骤:
    A:创建字符输入流对象
    B:调用读取数据方法,并显示
    C:释放资源
    代码体现:
            FileReader fr = new FileReader("a.txt");  
              
            //方式1  
            //一次读取一个字符  
            int ch = 0;  
            while((ch=fr.read())!=-1)  
            {  
                System.out.print((char)ch);  
            }  
  
            //方式2  
            //一次读取一个字符数组  
            char[] chs = new char[1024];  
            int len = 0;  
            while((len=fr.read(chs))!=-1)  
            {  
                System.out.print(new String(chs,0,len));  
            }  
  
            fr.close();  

代码托管

  • 代码提交过程截图:

  • 代码量截图:

上周考试错题总结

  • 1.假设Horse是Animal的子类,且都不是抽象类。下面哪项是无效的声明和初始化?选B
    A .Horse h = new Horse();
    B .Horse h = new Animal();
    C .Animal a = new Animal();
    D .Animal a = new Horse();
    E .all of the above(以上都正确) are valid(以上都是有效的)
  • 2.为了创建一个实现接口的类,需要使用关键字____选C
    A .extends
    B .interfaces
    C .implements
    D .finalizes
    E .abstracts
  • 3.假设Animal是一个指定了单一方法的接口--speak。现在假设Dog类实现了Animal接口。除了speak方法外,Dog类还有一个方法wagTail。现在思考下面的代码:选A

Animal a = new Dog();
a.wagTail();

关于这段代码,下面哪项是正确的
A .It will result in a compile-time error(这段代码会引起编译时错误).
B .It will result in a run-time error.(这段代码会引起运行时错误)
C .It will call the speak method defined in the Animal interface. (这段代码将会调用Animal接口中的speak方法)
D .It will call the wagTail method defined in the Dog class(这段代码将会调用Dog类中的wagTail方法).
E .none of the above are true. (以上都正确)
解析:这段代码会导致编译时错误,因为动物界面没有指定鹡鸰的方法。这个编译时错误可以避免通过显式铸造一个狗当调用鹡鸰方法。

  • 4.一个接口可以被用作引用类型。 选A
    A .true
    B .false
    解析:一个接口名称可以使用引用类型以同样的方式,可以使用一个类名作为引用类型,像一个抽象类。然而,一个接口不能实例化。
  • 5.FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准)定义了两层规范,第一层是()?选B
    A ./etc 应该放置设置文件
    B ./ 下面的各个目录应该要放什么文件数据
    C .针对 /usr 及 /var 这两个目录的子目录来定义
    D ./bin 与 /sbin 则应该放置可执行文件
    E ./var/log 放置系统登录文件
    F ./usr/share 放置共享数据
    解析:FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。
    FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该放置设置文件,/bin 与 /sbin 则应该放置可执行文件等等。
    第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件,/usr/share 放置共享数据等等。

点评过的同学博客和代码

  • 本周结对学习情况
    • 20162321
    • 结对学习内容
      这周我们一起学习了异常的有关知识,并了解了一些处理异常的方法。在合作中有很多困难,交流的时间也不多,还是有提升的空间吧。
  • 上周博客互评情况

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

这周继续浪潮之巅,这次我想说说摩托罗拉公司,摩托罗拉作为世界无线通信的领导者,可以说是它开创了这个产业,但是它因为技术路线错误,执行力欠缺,渐渐走向衰落。古人说得好,术业有专攻,但摩托罗拉公司却想要在个各条战线上都有所作为,这也最终导致了它的失败。所以说,我们干一件事,就要把它干好,不能太贪婪。有了前辈的经验,我想我们的路会更加的平坦一些吧。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 100/100 1/1 16/16
第二周 257/257 1/1 22/22
第三周 465/465 1/1 26/26
第四周 875/875 2/2 40/40
第五周 600/600 1/1 40/40
第六周 330/330 1/1 36/36
第七周 467/467 2/2 30/30
第八周 2926 13 150

参考资料

posted @ 2017-04-23 19:58  小飞侠WJH  阅读(158)  评论(3编辑  收藏  举报