20182308 华罗晗 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结

教材学习内容总结

初步了解了实例化数据和编写类的一些方法。再一次了解了封装的概念(并结合了第八章的继承的有关内容),通过书上关于UML的内容,编写了第一个UML视图。

了解了在同一个类中的return和this等命令的用法。

参照书本和教程,学习了一些关于TDD调试的思想和方法。

教材学习中的问题和解决过程

问题一:可见性修饰符是什么?它存在的意义是什么?

问题一解决过程:翻阅课本P108的有关内容,并且往后预习学习第八章中有关继承的内容。可见性修饰符的一个典型例子就是protected,这样的修饰符可以使得子类在有限的权限的情况下(也就是不破坏父类封装的情况下)访问父类的构造函数。使得一些类或者方法更方便使用、继承。

问题二:Java中的形参、实参是如何操作的,和C语言中的参数使用方法有什么不一样的地方吗?

问题二解决过程:翻阅课本P132,大体上和原先我们对于C语言中的形参、实参概念理解是一致的。形参本质上是对实参的数据引用,要使得形参的数据传回实参所在的数据的类,就必须要用return,或者方法继承的函数。

代码调试中的问题和解决过程

问题一:在IDEA中,部分代码编辑完毕之后,右键点击,没有Run这个选项。

问题一解决过程:比较了可以run的代码和不能run的代码,并且偶然通过psvm,直接打出了

public class void main(String[] args)

那么在代码文件的右上角就会有一个绿色的小三角形,并且可以run。意识到了问题在于有没有main方法。同时参考了网络资源,意识到了一个类要想正常编译运行,应该要有一个main(主类)。

问题二:在Junit相关的测试当中,即便引入了Junit.jar的包、按教程指导下载安装了插件,Test等指令也还是红的。

问题二解决过程:发现自己找到了一个错误的junit.jar的包,要考虑功能能够正常使用就也必须要考虑junit的版本问题。在导入了正确的包之后,test可能也没有办法马上从红色变为棕色、正常运行功能。这时候就可以重启一下IDEA,问题也许会自己解决。每一次新建一个文件夹,都要执行一次这样的操作。(导入junit.jar)

[代码托管](https://gitee.com/besti1823/20182308IZUMO)

上周考试错题总结

问题一:The behavior of an object is defined by the object's__?

A.instance data
B.constructor
C.visibility modifiers
D.methods
E.all of the above
错选:E    正解:D
问题一解决过程:看不懂专有名词的英文,解析就算了吧。翻译大意就是:object的行为由什么来定义?答案是method,也就是这个object中具体的方式。现在看来至少可以排除A,毕竟和形参肯定是没有关系的。
 
问题二:If a method does not have a return statement, then__?
 
A.it will produce a syntax error when compiled
B.it must be a void method
C.it can not be called from outside the class that defined the method
D.it must be defined to be a public method
E.it must be an int, double, float or String method
错解:D  正解:B
问题二解决过程:这个我看得懂!问题是问为什么一个方法没有输出值,这和它是不是public没有关系,就像在C语言当中学的那样,void就是没有输出值的类或者方法。

结对及互评

点评过的同学博客和代码

[20182312](https://www.cnblogs.com/shouko/p/11612584.html)

结对照片

结对学习内容

1、如上图所示,本周我与结对对象学习和交流的主要是课本中的代码思想。因为这一次作业难度较大,所以我们两人共同参考了其他优秀同学的代码,并且讲出了每一步代码的意义。并最终交流完成了课本习题。

2、在周五上课之前,我与结对对象互相交流了IDEA的各项设置。因为我在IDEA的git设置上遇到了较大麻烦,因此他重点帮助了我有关git的内容。同时,他在juint插件方面有不理解的地方,我帮他找到了那个正确的junit.jar。

3、在即将完成此博客的时候,回顾了一下上周我与他的博客,并且总结了一些问题,对照学姐第一周给出的模板更改了一番。

上周博客互评情况

[20182312](https://www.cnblogs.com/shouko/p/11569734.html)

其他

1、这是一个任务十分繁重的学习周。周一进行关于熟悉IDEA的系列实验数量很多、程序很繁琐。大部分的时间都拿来设置IDEA了,且IDEA的体系与虚拟机、与CodeBlocks都相去甚远,所以适应起来也花费了许多时间。同样,在IDEA上有不少VIM上没有的组建插件,所以IDEA的功能也比VIM更多一些,在不习惯的情况下出错率也会更高一些。

2、由于在周一实验当天,没有掌握好设置IDEA的节奏,同时因为一步无法正确执行,打乱了全部的节奏。在接下来的几天当中一直处于没有心思去整理IDEA的状态下,也没有时间去预习UML的相关内容,使得实践五没有及时交上。但是在事后慢慢尝试和探索中,仅仅一个下午,困扰我许久的问题(比如无法git、无法编译运行)都迎刃而解了,说明我还是应该吸取当初适应Ubuntu时期积累的经验,要静下心来,掌握节奏,稳中有进地进行学习。

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 6000(目标已根据建议修改) 30 400h  
第一周 101/101 2/2 23/23

了解了一些Linux系统操作入门、

学会了基本的JDB调试操作

第二、三周 353/441(删除了一些代码) 3/5 42/67

能够基本记住Java代码编程中的格式代码。

了解了一些有关方法的特殊命令(比如substring)

了解了一些有关类的基本知识。

第四周  327/768 2/7 28/95 基本已经适应IDEA的基本功能

 

计划学习时间:30h

实际学习时间:28h

改进情况:加强了与结对伙伴的良性沟通,仔细询问代码思路,而不是只看代码本身。

参考资料

1、IDEA简易教程

2、IDEA下使用git

3、积极主动敲代码,使用Junit进行学习

posted on 2019-09-30 21:45  20182308hlh  阅读(151)  评论(1编辑  收藏  举报

导航