java作业的第一次总结
1.前言
针对我们第一阶段的作业(共三次:pta中的作业)发表总结性博客。
2.作业过程总结
作业练习心得总结:①第一周的作业我做起来感觉有点C语言的韵味,但是这应该就是一种过渡性的作业,让我们从C语言的思维过渡到Java面向对象的思维的铺垫。题目考查的内容包括:主要是考查if else的运用,还有就是了解了一些关于Java的输入和输出的方式,知道关于字符串获取字符的运用和动态数组的理解,了解了面向对象类型的应用,建立Java的编程思维。
②第二周的作业终于了解了类和对象。这一次作业是让我们从第一次的作业中的总结运用,这一次作业主要分为两方面。第一方面就是对一元二次方程进行求解,在编程的时候让我了解到如何创建数组,同时了解到一些变量的区别和运用条件,public,private等的区别和运用;第二方面主要是对日期变化求要求的结果,该部分也巩固了if else,同时让我了解到switch ,Boolean的运用。让我深刻的理解是做题目的时候必须思路清晰,这样才能做好,不然会绕晕自己的。追根究底这一次作业就是第一次作业的升华,巩固我对面向过程向面向对象过渡的进一步理解。
③第三周作业相当于第二次作业的升华,因此也分为两个方面,这也让我更加了解到类和对象。第一方面用类解一元二次方程式,其主要的内容和第二次作业的差不多,但是这里关键在于运用类来解方程,让我真正进入面向对象的思维模式来解决问题;第二方面的内如也是在第二次作业的日期方面进行进一步的运用,同样用类的方法设计程序。同时在这一次作业中让我们了解到类图(UML图)。通过UML图来写程序,分类进行程序设计。
总的来说,第一阶段的作业的目的就是让我从C语言的面向过程慢慢转向Java的面向对象,周期作业也是环环相扣,层层递进,让我们进一步了解类和对象。
作业过程中遇到的问题及解决方法:①第一次作业的问题:第一次作业相当于比较简单,基本上都是一些基础练习,但是还是有点问题。第一题的一个测试的总是过不去,原因在于考虑不全面,并未考虑到输入为负数的情况;而第四题判断三角形的类型的题目中,结果总是说判断等腰直角三角形错误,后来将判断语句加一个Math.ceil(Math.pow(a,2)+Math.pow(b,2)==Math.ceil(Math.pow(c,2))解决了,因为输入的数是实数,那么长边可能是无理数,所以要四舍五入,因此加Math.ceil解决;第五题的统计最大数出现次数这一题的问题在于创建数组的时候出现了问题,然后通过查资料我选择用动态数组解决问题 ArrayList<Integer> list = new ArrayList<Integer>()。
②第二次作业的问题:第二次感觉在于思路清晰,还是if else嵌套运用。第二题嵌套好多if else,自己一不注意就导致逻辑的错误。还有日期总数少了一天,后来发现了如果是闰年咋办,就加了一个判断:if(isLeapYear(year)&&(month>2)){ day++;},因为闰年的2月有29天比平年多一天。
③第三次作业的问题:第二题的问题在于运行超时在算前n天和后n天里,后来为了改善我的算法,加了while语句 while(n>365){
浙公网安备 33010602011771号