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

教材学习内容总结

1、Scanner类的输入注意点以及一些常用命令——比如x=scan.nextLine;x=scan.next()等,同时联系后面的内容也可以推出输入单个字符的命令,即x=scan.next().charAt(0)。

2、String类的各种常用命令,特别是String substring(0,5)(输出字符串第一个到第四个组成的字符串)。很容易发现这里的String类方法的命令和C语言当中的string相关的命令有许多共通之处。

3、import引用声明、Random类、格式化输出进行了重点学习,稍稍了解了一些Math类,浏览了关于方法封装的有关内容。

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

问题一:关于随机数的问题——如果要选取10~20以内的任何数字,同时包括浮点型数字,要怎么进行编程比较妥当呢?

问题一解决过程:首先认识到,如果涉及到浮点型的数字,那么我们就必须用Random.nextFloat()的方法而不用Random.nextInt()的方法。因为考虑到取值范围,因此最终选取了这样的一串代码:(默认已经完成了import)

float x;
Random ran = new Random();
x = ran.nextFloat()*10+10;

问题二:较早时候的一个问题——关于Scanner,是每一次输入就需要一个Scanner还是一个类里面只要一个Scanner?

问题二解决过程:一般来说一个类里只要一个Scanner。Scanner的本质也像是一个变量,就像C语言当中的scanf语句一样。但是在我理解看来,Java中的scanner方法就像C语言中这样的代码:

int x;
scanf("%d",&x);

但是scanner中可以输入的可以是我们常见的任何数据,每一次输入都是对Scanner的一次初始化。

int m;
double a,b;
Scanner scan = new Scanner (System.in);
m=scan.nextInt();
a=scan.nextDouble();
b=scan.nextDouble();

这是我根据课本中的一段代码进行修改得来的,可见scanner里面的究竟是什么类型的数据,要看它被赋予给了哪个类型的数据。

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

问题一:无法输入单个的char类型数据。

问题一解决过程:查找了百度知道中的有关内容(链接已放置于文末参考资料中)。书本中也提出过有关内容,即P47-3.2中的内容:char charAt(int index),返回位于指定的index处的字符。

问题二:在课堂实践作业Bookshelf.java中,无论怎么样都无法输出正确的book数据。

问题二解决过程:确定了被引用class——book.java前面部分没有问题,Bookshelf.java没有问题。向学姐确认之后,学姐告知需要运用System.out.println中调用的tostring方法。经过查书发现,这个方法的意思就是“返回方法内的文本”,即方法toString,该方法名称不应该做出改变。

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

上周考试错题总结

错题一:(第二周考试)12、JAVA当中的主方法是由__定义的。

答案:public static main(String[] args)

反思:可见敲代码仍然不够多。主方法更像是原先C语言当中一个程序中的主函数。

错题二:

反思:首先现在可以确定,println后面跟着的()中的东西都可以拿来输出屏幕,+起到了连接的作用。在这里面大概是为了区分两个不同的int类型数字,所以自动加了空格。

 (第三周考试第一次)

结对及互评

博客中值得学习的或问题:

博客中的内容十分简洁,并且所有问题都非常真实地体现了这两周中的学习困惑。但是这样的问题并不多,可见此人在两周学习中并没有能够做到一边发现问题一边记录问题的好习惯。即便不写博客、不存草稿,也可以尝试在笔记本、

代码中值得学习的或问题:

用比较方便理解的方式、方法进行编程。但是问题就在于用了这些基础的、便于理解的方法,使得整个代码十分死板,且显得比较冗杂、可修改余地小。

基于评分标准,我给本博客打分:XX分。得分情况如下:14分

正确使用markdown语法(1)

模板中的要素齐全(1)

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

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

本周有效代码超过300分行的(2)

感想、体会不假大空(1)

有动手写新代码(1)

点评认真,能指出博客和代码中的问题(1)

结对学习情况真实可信(1)

点评过的同学博客及代码

本周结对学习情况

[20182312]()

结对照片

结对学习内容

1、重点学习了第三章中课堂涉及内容,复习了有关String方法的有关内容。如何连接两个字符串、如何截取字符串中的内容、如何选取字符串中的某个字符转换成char型的变量。我们对这些问题进行了比较多的沟通交流和共同实践。

2、接上条。我们也加强沟通了格式化输出的有关内容,我与12号同学讲解了DecimalFormat方法的使用情况(也就是对输出数字的小数位有要求时),并得出了这样的方法要比C中printf控制输出数字要来得方便、稳定。同时12号同学同我讲解了封装的一些思想、NumberFormat的使用环境。

3、与结对同学共同交流完成了课本中课后作业留下的习题。

上周博客互评情况

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

其他

1、在这两周中我们将目光从原本的Linux系统转变到了Vim上来,更多关注了Java程序的编写。同时王sir也明显放慢了讲课的速度,并且强调要我们课后去学习,并告诉了我们Java语言和C语言存在相当多的相通之处。比如在数据类型方面,但是也有不同的方面——比如作为面向对象的Java语言,对于String类型的数据显然更容易输入、保存和编辑,而对于单个字符的输入和编辑,就不如C来得简便。

2、作为面向对象的JAVA,已经有了许多便利的方法和类。使用类的方式和C中使用函数类似。但是做实验时候我的教训告诉我:一定要检查每一个类中的可能错误,在一个需要运行多个方法的大class中,如果有一个小class出现了错误,那么就会导致整体的巨大问题。尤其是对于有输出值的class,一定要class内部是否给予了可输出的数据。

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000 30 400h  
第一周 101/101 2/2 23/23

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

学会了基本的JDB调试操作

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

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

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

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

参考资料

1、Java toString方法

2、Java怎么接收char类型的数据?

猜你喜欢

转载自www.cnblogs.com/77599aa/p/11568283.html