来传智播客两个星期了,来到这里我认真学习,发现收获挺大的。之前我没有接触过JAVA这个东西,为了提高自己更进一步的认识水平,我随便挑选了道题进行分析和总结。如下: 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括姓名,三门课成绩),计算出总成绩,并把学生的信息和计算出的总分数高低顺序存放在磁盘文件"stud.txt"中。 这道题说难是真的算不上,但是涉及到的知识点还是蛮多的,值得复习一下。首先,学习JAVA最重要的是培养自己面向对象的思想,万物皆对象嘛。因此,我们可以把任何同类事物的特征向上抽取,建立对象。我们把题目中的五个学生归为一类,建立学生对象,其中姓名和三门课程的成绩作为属性,因为属性是自己的东西,所以我们设置的private修饰。为了方便初始化,我们将这些属性作为参数传到其构造函数中去。并用this方法传递赋值。题目中要求将学生的信息和计算出的总分存在磁盘,因此我们可以分别建立获取总分和姓名的方法对外公开。这样,有了学生类,我们想建立多少个学生对象都可以建立多少个。也充分体现了面向对象的思想。 接着,由于需要在键盘上输入数据,又要把这些数据存在在磁盘上,因此涉及到了IO流的知识。我们每在键盘上输入一条数据都要把它存在在容器中,那么,容器又该选择哪种比较好呢?由于要进行分数从高到低的排序,所以选择TreeSet容器最为合适,又因为存放的对象是学生类型,所以使用泛型的类型就是STUDENTS。我们每输入一条数据都要通过正则表达式来进行分割,将每条被分割数据作为参数传递到学生类中去建立学生对象。存储在set容器中。这个容易又通过建立自己的比较器来对学生进行排序,并建立迭代器将他们有序存在到目的地。完成最后的任务。 我们可以做个形象的比喻,将猪肉送到加工厂去,经过加工处理做成不同的罐头,然后再用货车将他们运送到超市去供选购。其中,键盘输入数据就是猪肉,学生信息就是罐头,set容器就是加工厂,分类加工和货车运送就是比较器和迭代器,超市当然就是磁盘文件了。这样,程序也就好理解多了。虽然我没有提供出代码来只是分析了一下它的解题思路,但是在传智老师的引导下,我认为,思想是不变的,代码怎么写都是可以的。而且,一个解决问题的程序是由大量代码组成,大量代码包含了很多的知识点,只有通过平时大量的练习,我们每个知识点才能更好掌握。这样,有了编程思想和牢固的基础知识,我们才能以不变应万变,立于不败之地。 |
|