zoukankan      html  css  js  c++  java
  • 第八周作业

    学号 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

    参考资料

  • 相关阅读:
    js图片飘动
    实战ASP.NET大规模网站架构:Web加速器(1)【转】
    DNS服务器设置详解
    Lucene:基于Java的全文检索引擎简介【转】
    传道解惑 软件开发技术名词解密(转载)
    UTF8 and Unicode FAQ
    高并发 高负载 网站系统架构 !深入讨论!【转载】
    (转)值的关注的Java开源项目
    MSDN:Webcast 系列课程
    ASP.NET MVC 学习网站
  • 原文地址:https://www.cnblogs.com/20162327WJH/p/6752918.html
Copyright © 2011-2022 走看看