JAVA第一阶段学习总结
0.前言
至此次博客总结,我已经完成了三次PTA习题了。



现在说起来,第一次作业的确是最简单的,但我完成的情况一般,当时还没有完全进入学习JAVA的状态;但经过了第一次作业,第二次就好很多了,取得了第一个满分;第三次作业的难度较大,老师给的时间也更长,但题目也更繁琐,更综合,我完成的还好。
1.作业过程总结
①总结知识迭代关系;
第一次作业主要是基础,各种基本语句等等
例如各种定义:
定义字符串:String a=new String;
定义数组:int[] m=new int[n];
定义类:public class Rectangle
定义方法:public int getArea(double r)
还有其他基本语句:
输入a数字:a=input.nextInt();
输入str字符串:str=input.nextLine();
输出语句:System.out.println(a+“+”+b+”=”+”a+b”);
数据类型转换:double a=Double.parseDouble(r);
以及Math类方法:Math.abs(n),Math.pow(a,2),Math.sqrt(4,2)
第二次作业更细致,主要是对方法的灵活调用
例如对判断闰年和判断输入是否合法的方法调用:
Main.isLeapYear(year);
Main.checkInputValidity(year,month,day);
if(checkInputValidity(year,month,day)==false)
System.out.println("Wrong Format");
else
Main.nextDate(year,month,day);
以及方法的算法细化
第三次作业更深入,主要是对类的灵活调用
例如对DateUtil类的调用:

以及类的传递:
public DateUtil getPreviousNDays(int n) {
DateUtil getPreviousNDays=new DateUtil(year,month,day);
return getPreviousNDays;
}
②通过作业逐步从面向过程过渡到面向对象;
第一次作业其实只是对JAVA的接触,能够让我们写出完整的程序来;第二次作业则是对第一次的加强,注重程序的正确性,也引进了类的概念,为第三次作业打下基础;第三次作业则是让程序与类不断碰撞,我们在这个碰撞的过程中更清楚的认识类,学会用类,之后老师的课更是给我们普及了类的思想,让我们更好的理解面向对象与面向过程的区别。
③作业过程中遇到的问题及解决方法
在完成第一次作业时我面临的问题源源不断,因为自学的时候up主是从整个Java编程原理透彻的跟我们讲解,为了让我们形成整个知识体系,而老师上课的时候又是抓住某一个点具体讲解,因此知识都是松散的,我没有办法完成一个完整的程序,所幸一直在查找知识点,也经常问同学,在第一次作业完成过程中学到了很多,第二次作业对我来说就没有很大问题;到了第三次作业重点放在了类上,这就要求我们理解面向对象的编程原理,才能更好的使用类,包括类的传递,一开始对我来说也是一个很大的挑战,我也会去网上搜相关的知识点,跟同学讨论,顺利完成了第三次作业。
④每次作业花费的时间比例
第一次作业花费的时间比较多,重点放在不断学习新知识上,否则我没有办法写出完整的正确的程序。第二次作业花的时间是最少的,也是最积极的一次。第三次作业花费的时间最多,我主要在理解类,理解类的调用,以及把类当成参数传递,理解JAVA的这种思想。
⑤对编程过程的严谨性的认识及教训
我个人觉得JAVA是比C更严谨的,如果在同一个packege里有一个class错了,可能还会影响别的class的使用。JAVA比C多了类的概念,因此要求也是更高的。包括JAVA输入完了如果没有关闭都是会有提示的,JAVA边编译边运行的机制也一直在提示我们注意错误。
2.设计心得
①面向过程与面向对象的比较
我理解的面向对象与面向过程的最大区别是:面向对象把重点放在对象上,去思考这个对象有什么属性,做什么行为,将它自己的东西都放到本身的类里面,之后再调用,不同的对象之间是互不干涉的;而面向过程则将重点放在一个什么事,什么行为上,将这个行为写成一个函数,再让不同的人调用这个函数去执行这个行为。
②面向对象设计的基本原则理解
我们现在接触的是职责单一原则,指的是一个模块的功能尽量是单一的,这样当该模块的某些方法或某些行为发生变化时,只需改动自身的模块,不影响其他模块和该模块的调用。
③对编程思维的理解
编程的本质是把人的想法转化成计算机能理解的语言,让计算机来执行人想让它做的事。正是由于计算机不像人的思维一样灵活,因此编程的严谨性就显得尤为重要。编程的过程中尽量把不同的模块分隔开来,彼此之间互不影响,不仅减小了程序崩溃的可能性,也有利于各个模块的维护。
3.测试的理解与实践
①测试对于编码质量的重要性
如果只是按照正确例子进行输入,当用户不小心输入了错误符号时,程序可能就运行不了,甚至崩溃,也可能输入合法但没有给出正确的结果,这样的程序当然也没有人会用。
②假如让你设计测试用例,你会如何做
先按照要求输入进行测试,再输入不同的字母,符号甚至空格回车等等,看程序能否给出正确的结果。
4.课程收获
首先是渐渐弄明白了面向对象和面向过程的区别,现在的思维也逐步向面向对象转变,不再是为了完成某项功能而写代码,面对题目也有了更多思考和认识。其次是学到了很多JAVA编程的基础知识,能为将来的更深层次学习打下基础。
5.对课程的建议
既然是专业课,我们本就应该进行大量的练习,现在的作业强度也是可以接受的,除了课堂作业因为知识没那么快吸收觉得有点困难以外,其他都还好。
6.学习计划
接下来的学习重心放在熟练掌握类的继承,正则表达式的使用,以及其他琐碎知识点上,增加学习JAVA的时间。
浙公网安备 33010602011771号