《Java程序设计》第6周学习总结
20175221 《Java程序设计》第6周学习总结
教材学习内容总结
-
第七章主要讲的是内部类,匿名类,异常类等等。
- 内部类:Java支持在一个类中定义另一个类,称作内部类,包含内部类的类叫做外嵌类。
- 匿名类:和某类有关的匿名类就是该类的一个子类或和某接口有关的匿名类就是实现该接口的一个类,该子类没有明显地用类声明来定义,就称作匿名类。
- 异常类:Java使用try-catch语句处理异常,也可以扩展Exception类定义自己的异常类。
- 第十章主要讲的是输入流、输出流、File类等等。
- 输入流、输出流:提供一条通道,可以用来读取源中的数据,亦或是把数据送到目的地。输入流的指向为源,输出流的指向叫做目的地。
- 可以用File类来创建目录、创建文件、删除文件和运行文件。
教材学习中的问题和解决过程
-
问题1:看克隆对象那里产生的疑问:为什么需要克隆对象?直接new一个对象不行吗?
-
问题1解决方案:上网查阅资料知:
-
克隆的对象可能包含一些已经修改过的属性,而new出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当前对象的“状态”就靠clone方法了。
-
而如果我们把这个对象的临时属性一个一个的赋值给新new的对象,一来麻烦,二来clone是一个native方法,重点是快,在底层实现。
-
并且通过clone方法赋值的对象跟原来的对象时同时独立存在的。
- 问题2:File类很多操作是不是和很多的操作有重复?
- 问题2解决方案:查阅资料并且与同学讨论知:还是有很多细微的差别。
- 比方说java.io.File.mkdir()和java.io.File.mkdirs(),这两个方法非常相似
- 但二者主要区别如下:
- java.io.File.mkdir():只能创建一级目录,且父目录必须存在,否则无法成功创建一个目录。
- java.io.File.mkdirs():可以创建多级目录,父目录不一定存在。
代码调试中的问题和解决过程
-
问题1:对java.io.File.mkdir()和java.io.File.mkdirs()的一些思考
-
问题1解决方案:编写相关代码
- 编译前
- 编译后
- 从中可以理解:
- path1是一个一级路径,使用java.io.File.mkdir()可以成功创建对应的目录;而path2是一个二级路径,使用java.io.File.mkdir()却不能创建对应的目录;
- path3是一个一级路径,使用java.io.File.mkdirs()可以成功创建;path4是一个二级路径,使用java.io.File.mkdirs()也可以成功创建对应的目录。
- 所以我的理解是,java.io.File.mkdir()与前边在linux下学的mkdir差不多,java.io.File.mkdirs()更像是之前创建包的操作。在父目录不一定存在的情况下,可以创建多级目录。
代码托管
(https://gitee.com/zxjacdl/zxj175221/tree/master/seven/7z)
(https://gitee.com/zxjacdl/zxj175221/tree/master/10z)
statistics.sh脚本的运行结果截图
上周考试错题总结
错题1:
下列关于实现接口的说法,正确的是:
A: 一个类需要在类声明中使用关键字implements声明该类实现一个或多个接口。
B: 如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。
C: 类重写接口方法时,方法的访问权限一定要明显地用public修饰。
D: 子类既可以重写接口中的方法,也可以直接拥有接口中的方法。
我的答案是:A,B
错题1解决方案:答案是:A,B,C
C项是正确的,当类重写接口方法时,方法的访问权限一定要明显地用public修饰。
D项:只有抽象类才可以直接拥有接口中的方法,否则必须全部重写
其他(感悟、思考等,可选)
- java课程这周的任务量蛮大,因为是两章的内容。
- 第七章还好,只是加了几个额外类的学习。
- 但第十章截止我发这篇博客,依旧有许多问题吗没有想清楚,例如输入输出流究竟要怎样正确应用,File类对文件的一系列操作的关系等等。
- 但我相信,在后边的学习中,我会慢慢弄懂这些没明白的东西的。
- 加油!
学习进度条(四月份继三月份)
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 8篇 | 100小时 | |
第一周 | 13/13 | 1/1 | 12/12 | |
第二周 | 309/322 | 1/2 | 13/25 | |
第三周 | 614/923 | 1/3 | 15/40 | |
第四周 | 384/1379 | 1/4 | 12/52 | |
第五周 | 565/1954 | 1/5 | 12/64 | |
第六周 | 1080/3034 | 1/6 | 15/79 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:12
-
实际学习时间:15
-
改进情况:继续保持稳定前进
(有空多看看现代软件工程 课件软件工程师能力自我评价表)
参考资料
-
[ Java 2 实用教程(第5版)]
- Java提高篇——对象克隆(复制)(https://www.cnblogs.com/Qian123/p/5710533.html)