20182319 2019-2020-1 《数据结构与面向对象程序设计》第四周学习总结
目录
教材学习内容总结
这一章的名字是编写类,但你如果要做一个东西,你至少要知道这个东西到底是什么,由什么东西构成以及包括哪些种类,对吧,所以说这一章虽然是叫做“编写类”,但其实它也包括了许多对于类的简介和一些对于他们的分类。
类的定义和一些比较基本的东西我就不说了(还是说一声,主要是有方法、参数,然后其中我觉得比较重要的是静态成员和重载(还好这个c++中也差不多)),这些东西在以前的章节中也有一定的介绍,在c++中也有一定的相似之处。所以说这一章也并没有那么陌生,学起来也是相对来说比较容易上手的。
当然,又不是同一种语言,而且c++我学得也比较粗浅,所以还是有许多可学之处的。就比如说uml图,我就听都没有听说过。然后学了一下,感觉难度不是特别大。
教材学习中的问题和解决过程
这一章确实比较基础,大部分也和c或c++有异曲同工之处,所以也没有太多的问题。
- 问题1:this这个东西到底有什么用啊?我在我自己的类里面我还要再指明这个是我的吗?这个不就感觉像在自己家里说家里的电视是我的吗?好像有点鸡肋。
- 问题1解决方案:但当我多看了点书后,终于发现,它好像真的不是鸡肋,这个看似普通的保留字,其实在用的时候还是会比较舒服的。怎么说呢,当你需要从外部引入一个变量给某一个数时,你可能需要给它一个名字,但众所周知,java取名字讲究美感,所以我们尽可能地希望它可以和原来那个名字是差不多的,最好就是一样的,但完全一模一样又不可能,于是,就是this登场的时候了,因为它可以告诉别人这个是原来的类中被引用的,于是就可以比较方便地“重名”。
- 问题2:因为对uml这种画图类型的软件没有过接触,所以不太会用。
- 问题2解决方案:首先,我知道如果不思考,那么你干什么事情,即使做得再好也是白搭,而如果面对那些你不会的,直接就去问,你也相当于什么都没有做,所以我先是把自己不会的地方先记录下来:不知道怎么加框,不知道怎么加线。这个有点像基本概念,其实只要问一下同学就好了,但我觉得不如看别人做再思考来得深刻,所以我先看了一下别人如何画框,发现是用了一个class的东西,那么我就猜测其它的应该也可以在不远的地方用英语,找到,然后果然在下面找到了dependcy就搞定了。
代码调试中的问题和解决过程
- 问题1:在第一次的coin题中,我在一个地方老是得到的是没有正面,只有反面,弄了好几次都是这样,也不知道问题出在哪里。
- 问题1解决方案:其实后来仔细一看,还是发现了问题,其实这个问题还是比较常见的,无论在哪个地方都可能会看到这个问题,就是我每次对face改成tail后,我都没有再把它赋成heads,于是face一直是tail。
- 这个问题是一个很常见也很隐蔽的问题,我们在一般做的时候总是会忘了给一个变量进行重复赋初值,然后就十分容易出错,这个问题是值得反思和积累的。
代码托管
上周考试错题总结
- 错题1
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
正确答案:D
错误原因与经验教训:其实我本来的想法是如果有一个选择方法在,由一个参数决定是否执行一些操作的话,这不就是由参数决定了吗?但我忽视了其实这一切也是通过对方法的操作来实现,而且选择方法本身就是一个方法(这就尴尬了)。 - 错题2
Instance data for a Java class
A .are limited to primitive types (e.g., int, float, char)
B .are limited to Strings
C .are limited to objects(e.g., Strings, classes defined by other programmers)
D .may be primitive types or objects, but objects must be defined to be private
E .may be primitive types or objects
正确答案:E
错误原因与经验教训:java的实例化数据其实并不只有一些,还有原始类型 - 错题3
An example of passing message to a String where the message has a String parameter would occur in which of the following messages?
A .length
B .substring
C .equals
D .toUpperCase
E .none of the above, it is not possible to pass a String as a parameter in a message to a String
正确答案:C
错误原因与经验教训:其实我觉得这一题错得还是有点冤的,一个是因为我没有看懂题目,另一个是因为我没有想到用equals就得把一个字符串传给另一个。 - 错题
正确答案:4
What happens if you declare a class constructor to have a void return type?
A .You'll likely receive a syntax error
B .The program will compile with a warning, but you'll get a runtime error
C .There's nothing wrong with declaring a constructor to be void
D .The class' default constructor will be used instead of the one you're declaring
E .None of the above
错误原因与经验教训:其实这个是书上的一句差不多的话,但我当时没有注意到,我是知道构造方法是不可以有返回值的,但我确实没有看到书上说的边void也不可以用的那句话,这个题错得不亏,但我得把这个题目记下来,争取下次不犯。 - 错题 5
The interface of a class is based on those data instances and methods that are declared public.
A .true
B .false
正确答案:A
错误原因与经验教训:这个确实是我的知识盲区,就只好记下了。
结对及互评
评分:
- 基于评分标准,我给本博客打分:14分。得分情况如下:
正确使用Markdown语法+1
模板中的要素齐全+1
教材学习中的问题和解决过程, 一个问题加1分+1
代码调试中的问题和解决过程, 一个问题加1分+2
本周有效代码超过300分行的+2
其他加分:
- 感想,体会不假大空+1
- 排版精美的+1
- 进度条中记录学习时间与改进情况+1
- 有动手写新代码+1
- 课后选择题有验证+1
- 点评认真,能指出博客和代码中的问题+1
- 结对学习情况真实可信+1
评价
- 博客中值得学习的或问题:
他的知识点整理得是真的十分不错,井井有条,可以方便人查看,但我们也可以看到的是他的错题整理得不够深入,希望下次有所改进。
点评过的同学博客和代码
- 本周结对学习情况
其他(感悟、思考等,可选)
主要是来自这周的错题总结,感觉有时候即使看过书了,还是会有一些小的点不太清楚,这个时候就体现了反复复习和考试的重要性,可以督促我们扫清盲点,不留漏洞。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第一周 | 62/100 | 1/1 | 30/20 |
第二周 | 250/300 | 5/3 | 47/40 |
第三周 | 869/600 | 6/6 | 65/60 |
第四周 | 869+386/1000 | 8/8 | 82/85 |