20182310 第四周学习总结
20182310 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结
教材学习内容总结
1.了解UML这种统一建模语言,学习类名、属性(数据)、操作(方法)之间的关系,初步学会画简单的UML图。
2.了解方法的分析,类由数据声明和方法声明组成,方法是一组编程语句。java程序中的方法是一个类的组成部分。方法声明首部包括返回值类型、方法名及该方法所接受的参数的列表,构成方法体的语句则定义在由花括号定界的范围内。
方法的返回值类型必须与方法声明首部规定的返回值类型一致。
3.类间关系有最基本的三种——依赖、聚合、继承。依赖关系:一个类依赖另一个类的情况称为依赖。一个类的对象含有另一个类的对象叫做继承。
4.this引用。this引用可用于当前正在运行的对象。this引用也常用于区分同名的构造方法参数和实例变量。
5.java接口是一组常量和抽象方法的集合。接口不能被实例化。可以由多个类实现同一个接口,一个类可以实现多个接口。
6.了解软件开发活动的四个基础过程,即确定软件需求,软件设计,实现软件设计,软件测试。了解伪代码、产品代码、测试语句。
教材学习中的问题和解决过程
-
问题1:toString与return返回的值的区别?
-
问题1解决方案:toString方法,返回字符串,return返回值(变量)
-
问题2:UML类图的使用
-
问题2解决方案:1.连接两个类的实线表示两个类之间的关联关系。2.带箭头的有向关联是单向的。3.类之间面向对象的其他类型关系可用不同的线型和箭头来表示。在之后慢慢的学习之后会更加熟练。
-
问题3:关于string buffer的加分题疑问
-
问题3解决方法:capacity返回的不是字符串的长度,而是目前的最大容量。明白了capacity()和length()的关系,前者是最大容量,默认是16,length返回当前长度。同时,在构造StringBuffer时可以指定其capacity
代码调试中的问题和解决过程
- 问题1:在编写书本第104面Die.java时,编译时出现大量错误。
- 问题1解决方案:查阅书本,Die类不是Java类库中预定义的。为了能让这个程序进行编译并运行,必须自己定义Die类对象完成的服务。同时编写时,用new运算符创建新的Die类实例时调用了Die类的构造方法。
- 问题2:git仓库出现问题,在上传代码至码云时出现无法上传的情况。
- 问题2解决方案:重新在码云上创建一个仓库,重新git到新的仓库
- 问题3:在IDEA如何统计代码行数?
- 问题3解决方案:在IDEA下载插件即可。但是本周我还未习惯此用法,仍然使用Linux中的脚本统计代码。
代码托管1
代码托管2
(代码提交一半时,虚拟机出现问题我重新创建了一个码云仓库进行提交)
上周考试错题总结
-
错题1:
-
错题1解决方案:局部变量是那些在声明它们的方法中“局部”的变量,也就是说,只能在该方法内部访问它们。 全局变量是可以从任何地方访问的变量,而参数是传递到方法中的变量。原因:没有弄清楚全局变量和局部变量。 实例数据可以视为整个对象的全局变量。
-
错题2:
-
错题2解决方案:构造函数应用于“构造”对象,即设置实例数据的初始值。 这不是必需的,但通常可以完成。 对象的界面由实例数据和方法上使用的可见性修饰符决定。
-
错题3:
-
错题3解决方案:当方法共享相同的名称时,它们被称为重载。 消息中传递的参数的数量和类型提供了用于调用正确方法的信息。
-
错题4:
-
错题4解决方案:length和toUpperCase消息没有参数,子字符串有两个int参数。 对于equals,必须将字符串作为参数传递,将接收消息的字符串与作为参数传递的字符串进行比较。
-
原因:没有弄懂length和equals的传参数能力
-
错题5:
-
错题5解决方案:在A的情况下,值0(一个int)被扩展为双精度。 在C的情况下,执行加法运算得出0.3,然后调用doublefoo。 D中的参数列表是非法的,因为它包含两个双精度参数而不是1。
-
错题6:
-
错题6解决方案:声明任何类型甚至为void的构造函数都违反语法,因此您将收到语法错误。
-
错题7:
-
错题7解决方案:Java方法还可以返回(引用)对象,例如String。原因:粗心大意,忘记了还有string...
-
错题8:
-
错题8解决方案:封装是一个概念,应保护对象免受意外(或有目的)滥用。
结对及互评
评分标准
- 博客中值得学习的或问题:
- 学习:之前助教指出我没有正确使用格式,结对同学的格式使用是正确的,需要我多加学习。(上周的博客我已经使用了正确格式,但怎么还是错的呢,我还参考了一下其他同学的博客,是一样的,希望助教指明一下)
- 问题:代码托管的截图是不是应该截图全部?不是特别清楚要求,但是大家好像都截图了全部。
- 代码中值得学习的或问题:无
- 基于评分标准,我给本博客打分:16分。得分情况如下:
-
正确使用Markdown语法(加1分):
-
模板中的要素齐全(加1分)
-
教材学习中的问题和解决过程, 一个问题加1分(2)
-
代码调试中的问题和解决过程, 一个问题加1分(2)
-
本周有效代码超过300分行的(加2分)
-
其他加分:
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
点评过的同学博客和代码
其他(感悟、思考等,可选)
在进入第四周的学习之后,作业量开始增多,同时也增加了相应的课堂实践项目。让我感受到了Java这门课程需要多加练习。学习的也不再局限于书本上的代码,更多是根据博客的自学项目。但是从一开始只能求助于同学。到现在慢慢能够自己解决一些问题,感受到变化还是很开心。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 155/200 | 2/2 | 20/20 | 初步掌握linux命令、java小程序和jdb调试 |
第二 三周 | 470/625 | 2/4 | 20/40 | 学会scanner定义的使用,类的定义 |
第四周 | 1444/2069 | 2/6 | 20/60 | 下载安装IDEA及其插件,学会TDD调试,编写测试代码 |