第八周作业
学号 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 |