20172311 2017-2018-2 《程序设计与数据结构》第六周学习总结
教材学习内容总结
这周主要对数组这个全新的概念进行了学习。
1.首先学习了声明和使用一些基本类型的数组,比如整数型和字符型,要注意数组是必须实例化的对象。
2.边界检查整体上就是说访问的数组中的元素必须是存在的,否则就会抛出异常。
3.数组初始值表可以实例化一些基本类型数组的对象。
4.对命令行实参的了解。
5.定义方法实现可变长度参数表。
6.对二维数组的学习和对多维数组的了解。
教材学习中的问题和解决过程
public class Student {
public static void main(String ... args) {
System.out.print(args[0]+"' average score is : ");
double average;
int sum=0;
int num=0;
for(int a=1 ;a<args.length;a++) {
sum += Integer.parseInt(args[a]);
num++;
}
average=(double)sum/num;
System.out.println(average);
}
}
可以将args理解成一个String型的数组,例子中定义了一个可变长度的String型的args数组,第一条输出语句输出的是数组中索引为0的对象加上后面红色部分组成的字符串,第二条输出语句输出的是args数组中其他对象转换为int型之后的平均值。命令行实参的执行需要在编译的时候初始化args数组,而且参数的个数一定要等于数组的长度,除非args数组是可变长度的数组。
- 问题2:JAVA中可变长度参数表的使用方法除了课本中的定义方法实现还有其他方法实现吗?
- 问题2解决方案:通过查询众多资料了解到答案是否定的。也就是说可变长度参数表的使用必须要自己定义方法类才能实现。
参考资料1、参考资料2、参考资料3
代码调试中的问题和解决过程
-
问题1:课本上的NameTag.java编译总是失败
截图如下:
-
问题1解决方案:经过多次尝试发现是因为我代码是在IDEA里写的,然后gitpull到虚拟机上,所以开头有一个打包操作,把打包的命令删除之后就可以运行了,实在是有点奇妙。
-
问题2:pp8.5项目编写时无法实现输入多个值。
-
问题2解决方案:使用for循环结合while循环最终实现
截图如下:
代码托管
上周考试错题总结
-
错题1
理解:如果在嵌套循环的最内层循环中发生了break,而这个循环就有三个层次,那么只是最内层的循环被破坏。
-
错题2
错因:基础知识掌握不牢导致审题不严谨进而导致脑子短路。
-
错题3
理解:switch语句比较适用于几个可能的情况。 -
错题4
理解:我感觉自己做的是对的,答案是错的。
-
错题5
错因:手残!!!!! -
错题6
错因:我觉得这个循环写得毫无逻辑,我甚至怀疑它到底是不是个for循环。 -
错题7
理解:这句话是对的,也是不对的。因为我们不知道他for循环外面那个j是不是在for循环外面定义过。
结对及互评
我和黄宇瑭同学这周只是做到了互评博客,并没有做到结对学习,希望在以后的学习中能够多多交流,多多讨论,共同进步!
点评过的同学博客和代码
-
本周结对学习情况
- 20172307
- 结对照片
暂时没有搞懂这个照片的含义,莫非是我们两个的合影??? - 结对学习内容
这周并没有结对学习,因为错以为结对就是为了互评博客,以后一定加强组内学习,互帮互助!!
-
上周博客互评情况
感悟
最大的感悟就是想学好JAVA实属不易,比如那个pp8.6项目我编了有一整天还是没有完全实现,感觉任务对我来说算是勉强可以完成。花在编项目上的时间多了,留给写博客的时间就会少,两者之间的平衡总是难以把握好,希望在以后的学习中能够逐渐摸索,继续努力坚持吧!
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 28/28 | 1/1 | 16/16 | |
第二周 | 710/738 | 1/2 | 20/36 | |
第三周 | 426/1164 | 1/3 | 16/52 | |
第四周 | 1068/2232 | 2/5 | 20/72 | |
第五周 | 604/2928 | 1/6 | 22/94 | |
第六周 | 609/3537 | 1/7 | 22/116 |
-
计划学习时间:20小时
-
实际学习时间:22小时
-
改进情况:尽量尝试着对编程的时间和写博客的时间进行合理的分配。