20172333 2017-2018-2 《Java程序设计》第6周学习总结
教材学习内容
1.数组的基本用法,如数组的定义:int[该数组类型] name = new int[X]
X为数组对象多少。索引是从0开始,即X=30,则对象的索引为0~29.
2.数组声明方式有两种,都可以用 int[] name
或者int name []
3.数组可单独作为一个单独对象当做参数使用,即可以使用方法对整个数组内的对象使用。
代码调试中的问题和解决过程
[x] 问题1:在pp8.1的编写过程中,遇到的定义一个数组的索引上限为50,结果输入20,显示超出索引。图
- 解决过程:按常理来说,定义索引为50,则在0~49就不应该出错,这里却出现错误,尝试过输入其他数值,结果依旧是错误,我抱着试一试的心态把索引的常量定义为一个极限int大的值,原以为应该不会出错,但结果依然不变,我突发灵感想到,可能错误不在这里,就把目光移到下面我使用过索引值的地方,在一个
while
语句中看到了一处int b = -1
zs[b++]
的疑似语句,在开始我输入这段语句是为了让代码从0开始进入,后来进行一些调整后发现错误消失了,也算了解到在索引上用++
在第一次使用该对象时不会+1,而会先用该对象的数值进行一轮循环。 [x] 问题2:运行pp8.1的过程中,出现无论输入什么值,最终结果输出0~50都会有1次出现。图
解决过程:在进行测试过程中,我有想过是不是我的if语句有错误,并多次将引用数组中的代码移出if语句,最后发现是我
for
语句中的索引的那个对象值使用错误。[x] 问题3:Idea运用时建立不了.class类。图
-
解决过程:
遇事不决问百度,查阅知道,Idea中需要定义文件夹为source类型才可以建立。
-总结:在做这个pp5.7的时候算是我第一次独自码这么100多行的Java程序,过程有点艰辛,但是还是有些收获,比如刚开始做这个PP5.7的时候我还单独列了一些处理该PP5.7 的一些要处理的问题,这样做PP5.7的时候不至于摸不着头。如图
---教材学习中的问题和解决过程
- [x] 问题1:在书8.1中提及过这样一句话“从效率的角度来讲,访问第500个元素与访问第一个元素一样容易。”,书上只是列出元素地址的计算方法便得到这个结论。
- 解决过程:理解不能,百度咨询没有相关内容。
- [x] 问题2:在书8.2.4中“如果元素的类型是基本类型,则将传递元素值的副本;如果元素是一个对象的引用,则将传递对象引用的副本。”
解决过程:我尝试过对一个Int数组使用数学方法
Math.aprt
的方法,不知道为什么,报错了。我不太明白如果对于一个数组到时成功运行后会是对该数组内所有的对象都运用一次方法,还是可以单独指定其中某些使用方法。
代码托管
(statistics.sh脚本的运行结果截图)
点评:
-
博客中值得学习的或问题:
在用Math.sqrt(double num)方法时候,IDEA报错说num应该为int类型,而书上也写着无论是输出的sqrt还是输入的num都应该为double型.
在遇到问题后,进行资料查阅以及相关修改,值得我学习。
- 代码中值得学习的或问题:
在进行Git commit时的备注内容有条理且井然有序。
点评过的同学博客和代码
- 本周结对学习情况
- 20172330李楠
- 结对照片
- 结对学习内容
- Commit内容丰富值得学习
- 问题及处理方法记录简洁明了。
上周考试错题总结
1.问题:Which of the sets of statements below will add 1 to x if x is positive and subtract 1 from x if x is negative but leave x alone if x is 0?
A . if (x > 0) x++;
else x--;
B . if (x > 0) x++;
else if (x < 0) x--;
C . if (x > 0) x++;
if (x < 0) x--;
else x = 0;
D . if (x == 0) x = 0;
else x++;
x--;
E . x++;
x--;
分析:如果x是正的,x++是在x=-x时执行的,否则,什么都不会发生,或者x不受影响。在A、C、D和E中,逻辑是不正确的。在A x中,如果x不是正的,那么如果x=0,x变成-1,这是错误的答案。在C中,如果x是正的,那么就执行x++。在任何一种情况下,下一个语句都被执行,如果x不是负数,则执行else子句设置x为0。所以如果x是正的,在这组代码之后它就变成了0。在D、x++和x中——如果x不是0,都是执行的。在E中,这段代码并没有试图确定x是否。
2.问题:As in the other members of the C family of languages (C, C++, C#), Java interprets a zero value as false and a non-zero value as true.
A . true
B . false
分析: Java中保留字中有True和false,不用0或1来表示。
3.问题:When comparing any primitive type of variable, == should always be used to test to see if two values are equal.
A . true
B . false1
分析:==
在Java中永远是用来定义两个值是否相同。
4.问题:In order to compare int, float and double variables, you can use <, >, ==, !=, <=, >=, but to compare char and String variables, you must use compareTo( ), equals( ) and equalsIgnoreCase( ).
A . true
B . false
分析:语法没有错误,只是使用的人很蠢。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 125/125 | 2/2 | 20/20 | |
第二周 | 269/394 | 2/4 | 未知/38 | |
第三周 | 477/920 | 1/5 | X/X | |
第四周 | 1179/2338 | 1/6 | -- | |
第五周 | 1131/3154 | 1/7 | ?/? | |
第六周 | 1448/4008 | 1/8 | ?/?? |