学期总结
一个学期一眨眼就过去了,经过这段时间的JAVA课程学习,虽然掌握的不是特别好,但是多多少少还是有一些收获的。学习这门课程之前可以说我对于JAVA什么都不了解,甚至连Java是什么都不得而知,但是看着课程的名字给我的感觉就是跟C语言一样难学,以至于有很大的抵触心理。后来慢慢的接触到JAVA,我才知道原来我们平时玩的小游戏,比如说贪吃蛇、扫雷、五子棋、愤怒的小鸟等都是由JAVA来实现的。渐渐地对JAVA也有了一些浅显的认识。
回想本学期的学习,虽然开始的时候有一些抵触心理,但是因为是一门新开的课程,所以多多少少充满着好奇心,刚开始由于都是一些理论上的知识,或多或少还能理解上去。随着课程的深入,听课感觉特别吃力,每次看到老师打开长长的源代码都不知道什么意思,更何况因为是过程性考核,每两周都有一次考核,这更加让我头疼,为了得到好一点的分数就必须要强迫自己去接受它并且弄懂它,慢慢地一些简单的源程序也就能看懂了。
一、本学期JAVA程序设计课程的主要内容
从第一堂课的介绍JAVA,我了解到了JAVA他的前身是Oak计算机语言,并且它是一个新型计算机语言,没有兼容过程性计算机语言的负担,是面向对象型语言。而且他具有稳定性,平台性,可移植性。并且在老师的帮助下学会了搭建JAVA环境。在后续的课程中,我了解到了一些之前没听过的名词,比如说:标示符、控制结构、类、多态性、接口、变量。因为是理论性知识,所以之前的学习还算比较容易,知道了运算符的分类,分为算数运算符、关系运算符、布尔逻辑运算符、位运算符、条件类运算符和其他运算符;控制结构大致分为以下几种:用于判断的if语句、用来选择的switch语句、循环语句for语句、while语句、do-while语句等。还有一维数组,多维数组。字符串等。在接下来的深入学习中,我见到了让我头疼的东西-----代码,我对代码部分一直都很畏惧,因为自己的逻辑结构不强,面对一个项目时不知道从何下手。可是再难也要坚持学下去,虽然说学的不好,但是我会通过上网查一些资料,身边朋友的帮助来尽力达到老师的要求。为了完善自己的代码,老师教会了我们如何设置异常处理,包括异常的产生及其种类。在最后的学习中,我们学习了JAVA和TCP、UDP之间的关系,以及基于TCP、UDP通信。
二、代码行数
三、描述自己在结对编程中的主要作用及收获
对于一个学生来讲,最让人头疼的应该就是考试了,虽然是阶段性考核,但是由于自己JAVA学的不太好,每次考试之前都会紧张。前两次考核是个人考核,即便结果可能多少不尽人意,但是能够自己独立地去完成一些小程序还是比较开心的。第三次考核是结对编程,当我第一次听说结对编程的时候,我仿佛发现了一个新事物一样。因为在这之前,我们所有的考试都是一个人完成的。结队编程,顾名思义是两个人一起完成考核,老师提出了1+1>2这个观点,我十分认同,我认为老师让我们一起考试的目的是为了让我们了解到两个人互相合作,互相鼓励的重要性,并且遇到不会的问题时候,我们应该和伙伴分享自己的想法而不是一个人闷着。而这次两人合作完成一个项目,突然间觉得自己和同伴的差距不是一星半点,在考试之前不知道能不能发挥自己的一点作用,考试的时候遇到困难变得有点浮躁,但是同伴不断地鼓励我说没问题别着急,这才让我的心情变得平静。虽然在这个过程中我们两个遇到了各种不同的问题,我通过上网查找一些相关问题的资料必要时帮他排错,漫漫地一步步地解决了这些问题,让我感觉到了合作的重要性,也深刻地理解了1+1>2的含义。
四、描述自己在团队编程中的主要作用及收获
这学期最后一周是实训课,老师采取了团队合作这种形式。就我个人而言我很喜欢这种方式,因为这种方式通过大家的力量能够弥补我的不足。俗话说得好,人多力量大,在这次实训中,每个人都能发挥自己的长处,做到取长补短。逻辑思维强的人负责提供思路,基础扎实的来负责编写代码,心细的人负责在遇到错误的时候沉下心来解决问题和一些项目需求分析的编写。一个团队最重要的就是团结一致,而在这次实训中,我们遇到问题的时候都会积极分享出自己的想法,然后大家一起研究讨论出结果。我认为无论在学习中还是以后的工作中,都应该充分发挥团队的作用,不能各自为战。要知道,一个人的力量是有限的,但是一群人的力量就是无限的了。相比于以前传统的考试,老师给我们带来的新颖的考试方法,不光是为了提高成绩,,而是让我们通过这种方法真正受益。我们还学会了遇到困难要一起努力,所谓众人拾柴火焰高。
五、通过这门课程的收获
最让我印象深刻地是计算器这个程序,因为是第一次自己独立完成一个项目,所以特别记忆犹新。通过这个项目,使我认识到了自己的不足,也不像以前那样焦灼了。下面是我设计的特别简陋的计算器的代码,希望能通过博客的方式记录我这学期对JAVA的收获:
1 import java.io.*; 2 import java.util.Scanner; 3 4 public class Calculator 5 { 6 static String cc=new String(); 7 public static void main(String[] args) 8 { 9 Calculator(); 10 } 11 public static void Calculator() 12 { 13 Scanner cin = new Scanner(System.in); //从控制台接收数 14 System.out.println("*\t\t\t\t\t\t*"); 15 System.out.println("*******************计算器******************"); 16 System.out.println("*\t\t\t\t\t\t*"); 17 Calculator ca=new Calculator(); 18 String s1="+"; 19 String s2="-"; 20 String s3="*"; 21 String s4="/"; //定义运算符号 22 String s=null; //定义变量s 23 24 System.out.println("请输入第一个数的值:"); 25 double a=cin.nextDouble(); 26 27 System.out.println("请输入第二个数的值:"); 28 double b=cin.nextDouble(); 29 30 System.out.println("请选择一种运算:+, -, *, / "); //从控制台接收运算符号 31 s=cin.next(); 32 33 if (s.equals(s1)) //判断输入的运算符号,根据接收的运算符号进行运算 34 { 35 double result=ca.sum(a,b); //调用加法运算 36 cc=a+""+s1+""+b+"="+result; 37 System.out.println(cc); 38 } 39 40 if (s.equals(s2)) 41 { 42 double result=ca.sub(a,b); //调用减法运算 43 cc=a+""+s2+""+b+"="+result; 44 System.out.println(cc); 45 } 46 47 if (s.equals(s3)) 48 { 49 if(a==0 || b==0) //判断输入的数中是否存在0 50 { 51 System.out.println("0"); 52 } 53 54 double result=ca.cheng(a,b); //调用乘法运算 55 cc=a+""+s3+""+b+"="+result; 56 System.out.println(cc); 57 } 58 59 60 if (s.equals(s4)) 61 { 62 63 double result=ca.chu(a,b); //调用除法运算 64 cc=a+""+s4+""+b+"="+result; 65 System.out.println(cc); 66 67 try{ //异常处理 68 double c=ca.chu(a,b); //调用方法 69 70 System.out.println("被除数不能为0"); 71 72 } 73 catch(Exception e) 74 { 75 System.out.println("is error"); 76 } 77 78 } 79 80 ca.writer(); //调用方法 81 } 82 83 public static void writer(){ //定义一个方法,将结果打印到1501020505富裕这个文件夹中 84 try{ 85 FileWriter f=new FileWriter("1501020505富裕.txt",true); 86 87 f.write(cc+"\r\n"); 88 89 f.close(); 90 } 91 catch(IOException e){ 92 e.printStackTrace(); 93 } 94 95 96 } 97 98 99 public static double sum(double a,double b) //定义加法方法,定义方式是定义两个变量 100 { 101 double c=a+b; 102 103 104 return c; 105 } 106 107 public static double sub(double a,double b) //定义减法方法,定义方式是定义两个变量 108 { 109 double c=a - b; //相减赋值给第三个变量 110 111 112 return c; 113 } 114 115 public static double cheng(double a,double b) //定义乘法方法,定义方式是定义两个变量 116 117 { 118 double c=a*b; //相乘赋值给第三个变量 119 120 return c; 121 } 122 123 public static double chu(double a,double b) //定义除法方法,定义方式是定义两个变量 124 { 125 double c=a/b; //相除赋值给第三个变量 126 127 return c; 128 } 129 130 }
虽然离老师规定的要求还有很大一段距离,但也算是自己认认真真编译的小程序。也正是这样对于老师提出的建议才记的更加深刻。所以我们一定要多动手去实践,这样才能让自己深入了解。
六、对这门课程的建议
大体上我觉得都很好,就是上传码云和博客的时间太紧张了,每次都超级紧张和烦躁希望老师可以延长时间让我们能在繁忙的一天的学习当中能缓解一下。
七、对教师和助教有哪些意见
对于老师所说的对这门课程提出的建议,我觉得这门课对我们以后从事编程等方面的工作非常重要,相比于之前一些课程注重理论知识,老师在讲理论的同时,同样注重我们的动手实践能力,通常都会给我们很长的时间去练习。而且交作业的方式也很与众不同,通过博客园让我们在课余时间学习其他人的方法和见解,提供了很多的学习资源,给我们学习创造了很大的空间。
最后很感谢老师以及助教。在课堂练习时,给我们提供帮助。课下还耐心批改我们的作业,提出我们的不足并且给出我们相应意见。助教也能在他们的课余时间认真对我们的作业进行评分,对我们的学习有很大的帮助。总的来说,学习Java还是收获颇多的,无论是个人动手能力还是团队协作能力都得到了很好的锻炼。所以在以后的学习乃至工作当中我会慢慢完善自己,成为一个对团队有贡献的人。