20172322 2017-2018-2 《程序设计与数据结构》第四周学习总结
20172322 2017-2018-2 《程序设计与数据结构》第四周学习总结
教材学习内容总结
- 学会了简单的自编类来实现简单的自编类要求。
- 了解了类中的属性成为实例变量。
- 了解了UML图的使用方法。
- 了解到封装由
private
可见性修饰符来实现。 - 了解到
return
用于返回调用方法中的调用语句。 - 了解了实参与形参的差别。
- 了解了 软件开发活动主要包含下四个基本的开发过程:确定软件需求、软件设计、实现软件设计、软件测试。
- 了解了静态方法可以通过类名称来调用,不必实例化对象。例如
Math
类。 - 了解了类间关系有三种:依赖、聚合、继承。
- 学会了一些简单接口的使用。例如Comparable。
教材学习中的问题和解决过程
- 问题1:在最初老师上课时并没有预习书上内容,导致书上概念很多不清晰。
- 问题1解决方案:在之后的时间里花了大量时间来细读书上类容,才使得对部分内容逐渐清晰。
- 问题2:在最开始按照按照书上的代码敲入,没有理解其中的含义,例如为何要使用
return
来返回值,void
的用法又是什么这些都不是很了解。 - 问题2解决方案:认真阅读教材,并且结合自己之前敲入的代码来理解书上的内容,在一次细读后豁然贯通。知道了没
void
存在的声明都是非静态的,均需要使用return
来返回,否则会导致错误的发生。
代码调试中的问题和解决过程
- 问题1:在IDEA中敲入的代码如果上传至码云后再在Linux中
git pull
会导致程序在Linux中无法运行。 - 问题1解决方案:在IDEA编辑时,IDEA会将程序自动打包到文件夹下,在Linux中他们因为存在
pakege
而无法运行,把pakage
那一行变为注释便可。如图! - 问题2:对IF方法的不了解导致部分课后作业无法完成。
- 问题2解决方案:得到了助教张旭升学长的帮助,使得我对IF的使用有了一定的了解。如图。
代码托管
上周考试错题总结
- 第一题:
- 第一题解决方案:Java变量包含对实例类(包含值和/或附加引用)的值或引用。
- 第二题:
- 第二题解决方案:如果两个变量都设置为null,那么该对象不会被任何变量引用(通过任何别名)
- 第四题:
- 第四题解决方案:编译器能够检测到尝试使用未初始化的变量,在这种情况下它会产生语法错误。如果诸如使用编译器的转义检测,则在使用时发生运行时错误。
- 第七题:
- 第七题解决方案:翻译以后没有看懂题意,导致理解错误,这道题没有问题。
- 第九题:
- 第九题解决方案:在Random类中
nextFloat()
在[0,1)范围内的数是非常多的浮点数,而nextInt()
在[0,1)范围内只存在0一个整数。 - 第十一题:
- 第十一题解决方案:s1没有空格!!!
- 第十五题:
- 第十五题解决方案:所有随机数发生器的效率是相同的。Random生成器比Math.random的优点是包括所有其他属性。
- 第二十三题:
- 第二十三题解决方案:他们的含义虽然不同但是他们输出的结果是一样的 😵
- 第二十七题:
- 第二十七题解决方案:导入语句只能与一个*(通配符)一起使用。如果您还需要导入包的所有辅助级别,则必须明确写出它们:
import package.A; - 第二十九题:
- 第二十九题解决方案:C程序使用C printf函数进行输出。Java的
printf
方法紧跟在C printf函数之后,所以C输出语句可以非常容易地转换成Java。 - 第三十题:
- 第三十题解决方案:题目所说的对于大多数包装类都是对的,但int(Integer)和char(Character)是错误的。
其他(感悟、思考等,可选)
- 感悟:第一次一周学两章的内容,外加这两张的内容都不简单,自编类的难度比前几章来说难度陡升,导致在本周的学期初期有点爆炸,但是经过之后的认真学习发现了初期的问题都不是问题,认真学习就能解决问题。另外:少玩游戏!
- 思考:自编类对于新手来说有一些难度,我们现在编的代码只是为了完成任务,并未考虑到代码优化之类的事情,然而并不是程序能够运行就万事大吉了,我们还有很长的路要走。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 242/242 | 1/4 | 13/13 | 增加了对Java的兴趣 |
第二周 | 297/539 | 1/5 | 15/28 | 发现目标并没有想象中那么难 |
第三周 | 315/854 | 2/7 | 18/46 | 突然发觉JAVA的难度不小 |
第四周 | 1269/2123 | 1/8 | 50/96 | Java难到哭,但是有信心击败他! |
-
计划学习时间:40小时
-
实际学习时间:50小时
-
改进情况:上周博客提到的问题已经理解得差不多啦!